前言
零基础快速上手《设计模式》点击如下传送门
秒懂—设计模式https://blog.csdn.net/weixin_56232016/article/details/136766136
“设计模式学的是思想,而不是套用模板”
概念看不懂时可以参考个人理解
“因为最近有事比较忙,先陆陆续续把整理的一些信息发上来,后面再加上个人理解”
装饰模式
定义
动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活
角色:
- Component(抽象组件):规范组件的职责
- ConcreteComponent(具体组件):未添加额外职责的组件
- Decorator(装饰器):规范装饰组件新增的额外职责,继承Component
- ConcreteDecorator(具体装饰器):实现装饰器规范的额外职责
UML
使用场景
- 需要动态扩张实现类的功能
- 动态的给一个对象新增功能,并且可以动态地撤销
- 需要为多个兄弟类进行加装功能
优缺点:
优:
- 装饰类与被装饰类独立发展,不会相互耦合
- 装饰模式是继承关系地一个替代方案
- 可以动态扩张实现类的功能
缺:
- 多层装饰带来的代码复杂度,可读性较差