设计模式-装饰者模式

来源:互联网 发布:全球淘宝下载 编辑:程序博客网 时间:2024/06/07 09:47

最近在学习设计模式,就记录一些自己的学习过程,希望和大家共同进步,有意见不一致的请提出指点。

Deaorator pattern 装饰者模式:

who-谁去做?
角色定义:
Component:被装饰者和装饰者抽象共同实现的接口或者抽象类。
ComponentDeaorator:具体的被装饰者对象。
Deaorator:装饰者实例的抽象类。
ConcreteDeaorator:具体的装饰者对象。

装饰者模式的UML图解:



what-用于做什么?
可以使用一个或者多个装饰类包装对象,可以根据需求在运行时动态的、不限量的给对象进行包装。
why-为什么要使用它?
对扩展开放,对修改关闭,遵循开放 - 关闭原则,面向对象编程推荐我们尽量多使用组合,少使用继承,装饰者可以动态的给对象进行装饰,扩展功能方面,是比继承更好的替代方案。
应用场景:
动态、透明地给特定对象添加职责,也就是说,不会影响到其他对象。
用于那些可以随时撤销的职责。

当用子类进行扩展是不切实际的时候。有时需要大量的独立扩展并将导致支持各种组合的子类数量大爆炸。或者一个类的定义可能是隐藏的是子类无法获取到的。


demo就不贴了

0 0
原创粉丝点击