本章比较难于理解,需要反复仔细阅读和推断理解,也可以结合其他资料印证
1.简介
- 当系统需要加一下新方法或者逻辑,这些新加的东西只是为了满足特定的情况下才会执行的特殊行为。装饰模式提供了很好的解决方案,他把每个要装饰的功能放在单独的类中,并让这个类包装他所要装饰的对象,因此当需要执行特殊的行为时,客户端代码就可以在运行时根据需要有选择的、按照顺序地使用装饰功能包装对象了。
- 装饰模式属于结构型设计模式。
2.场景
1、扩展一个类的功能。
2、动态增加功能,动态撤销。
3.优缺点
优点:
装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。
缺点:
多层装饰比较复杂。
4. 图片模型
![](https://img.haomeiwen.com/i15731841/fe005d9f97218fa2.png)
5. 代码实现
![](https://img.haomeiwen.com/i15731841/1e0568cc1ef17fb6.png)
![](https://img.haomeiwen.com/i15731841/845760971f1af12a.png)
![](https://img.haomeiwen.com/i15731841/0af4c4f13dd2cca7.png)
![](https://img.haomeiwen.com/i15731841/14e4028833444276.png)
![](https://img.haomeiwen.com/i15731841/8725c9ad736f6131.png)
网友评论