设计模式学习--装饰模式

装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活,


装饰模式是为已有功能动态地添加更多功能的一中方式.其使用一种对客户端透明的方法来动态地扩展对象的功能,同时他也是继承关系的一种替代方案,

当系统需要新功能的时候,相旧的类中添加新的代码,这些新的代码通常装饰了原有类的核心职责或主要功能,但是这样的问题在于,他们在朱磊中加入了新的字段,新的方法和新的逻辑,从而增加了主类的复杂度,而这些新加入的东西是为了满足子再某种特定情况下才会执行的特殊行为的需要.

装饰模式提供了一个非常好的解决办法,它把每个要装饰的功能放在单独的类中,并让这个类包装他所要装饰的对象,因此,当需要执行特殊行为时,客户代码就可以在运行时更加需要有选择地,按顺序地使用装饰功能包装对象了,

这种扩展并非是直接修改原有的方法逻辑或结构,更恰当的说,仅仅是在另一个类中将原有方法和新逻辑进行封装整合而已.


装饰模式和代理模式有点类似,有时甚至容易混淆,装饰模式是以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案;而代理模式则是给一个对象提供一个代理对象,并有代理对象来控制对原有对象的引用.装饰模式应该为说装饰的对象增强功能,代理模式对代理的对象施加控制,但不对对象本身的功能进行增强.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值