设计模式-装饰模式《十六》
2019-01-04 本文已影响22人
liyoucheng2014
何为装饰模式
定义:动态的给一个对象添加一些额外的职责。就扩展功能来说,装饰模式相比生成子类更为灵活
静态关系图如下
![](https://img.haomeiwen.com/i1756021/6ceff6e25b8a2530.png)
何时使用装饰模式
1、想要在不影响其他对象情况下,以动态、透明的方式给单个对象添加职责。
2、想要扩展一个类的行为,却做不到。类定义可能被隐藏,无法进行子类化;或者,对类的每个行为的扩展,为支持每种功能组合,将产生大量的子类
3、对类的职责的扩展是可选的
注:系统Category是基于装饰器模式
注意:Category可能重写了被装饰父类的方法
![](https://img.haomeiwen.com/i15146921/c3ce77fefd8efee7.png)