先说下装饰器模式要解决的问题:可以使我们在不修改任何底层代码的情况下,给你的对象赋予新的职责,也就是在不改变原有对象的前提下增加行为,满足开闭原则,
开闭原则:对扩展开放,对修改关闭!
定义:
装饰器模式是动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。
00原则:
- 封装变化
- 多用组合,少用继承
- 针对接口变成,不针对实现编程
- 为交互对象直接的松耦合
- 对扩张开放,对修改关闭
优点:
- 动态的
- 提供了有别于继承的另一种选择
- 符合开闭原则
- 可以搭配其他模式,如工厂模式和生成器模式等
缺点:
- 装饰器模式,常常造成设计中有大量的小类
类图:
举例描述:
装饰器就类似于一个一个的包装器,将被装饰对象包装起来,开局就是一个猴,只不过是从石头缝蹦出来的,在后去蓬莱仙岛学习仙术