首页 > 其他 > 详细

装饰器模式-设计模式

时间:2021-05-06 14:47:03      阅读:15      评论:0      收藏:0      [点我收藏+]

一.装饰者模式定义:
?动态地为一个对象添加一些额外的职责,若要扩展一个对象的功能,装饰者提供了比继承更有弹性的替代方案。
模式的结构图:

技术分享图片

 

二.模式包含角色 :
抽象构件类(Component):给出一个抽象的接口,用以规范准备接收附加责任的对象
具体构件类(ConcreteComponent):定义一个具体的准备接受附加责任的类,其必须实现Component接口。
装饰者类(Decorator):持有一个构件(Conponent)对象的实例,并定义一个和抽象构件一致的接口。
具体装饰者类(ConcreteDecoratator):定义给构件对象“贴上”附加责任。

三.使用场景:
I/O流,数据源包装 ,Spring 中用到的装饰器模式在类名上有两种表现:一种是类名中含有 Wrapper,另一种是类名中含有Decorator。

①.用于拓展一个类的功能或者给一个类添加附加职责
②.动态的给一个对象添加功能,这些功能可以再动态的撤销。
③.需要为一批的兄弟类进行改装或加装功能。

四.装饰模式的优缺点
优点:
1、装饰器是继承的有力补充,比继承灵活,不改变原有对象的情况下动态地给一个对象扩展功能,即插即用。
2、通过使用不同装饰类以及这些装饰类的排列组合,可以实现不同效果。
3、装饰器完全遵守开闭原则。
缺点:
1、会出现更多的代码,更多的类,增加程序复杂性。
2、动态装饰时,多层装饰时会更复杂。追踪代码更难看点

五.代码如下所示:

 

装饰器模式-设计模式

原文:https://www.cnblogs.com/jelly12345/p/14734802.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!