《JAVA与模式》读后感4-装饰模式

系统 2165 0

装饰模式
定义:以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。


装饰模式的构件包括抽象构件、具体构件、抽象装饰、具体装饰。对于透明的装饰模式,客户端面向抽象构件编程,所以是透明的(对所有的装饰视而不见)。对半透明的装饰模式,客户端面向具体装饰编程,因为要使用具体装饰的特殊方法(不在抽象构件和抽象装饰里面),无法实现完全透明。

《JAVA与模式》读后感4-装饰模式
 



装饰模式的原理是逐层包裹并加入新功能。把地球结构想象成装饰模式,内核就是具体构件,外核、地幔等就是具体装饰。

《JAVA与模式》读后感4-装饰模式
 


装饰模式的应用场景:
(1)需要扩展类的功能或增加附加责任。
(2)需要动态给对象增加功能,这些功能也可以动态撤销。
(3)需要通过基本功能的排列组合产生大量功能。继承体系无法实现这一点,因为继承关系是静态的,无法动态组合,这一点正是装饰模式的优点。 

 
装饰模式与适配器模式的区别:
适配器模式是改变接口不改变功能。装饰模式是不改变接口(因为对客户端透明),而改变功能(因为逐层加入功能)。


装饰模式与策略模式的区别:
装饰模式虽然逐层加入新功能,但是内心的功能不会改变。策略模式会把内心的功能(具体算法)整个替换。


装饰模式与合成模式的关系:
装饰模式经常用在合成模式的行为扩展上。因为使用继承对于合成模式来说不是好办法,而装饰模式是继承模式的替代方案。

 

《JAVA与模式》读后感4-装饰模式


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论