装饰器模式
1 | publlic static void main(String[] args){ |
介绍
意图:动态的给实体类添加新功能
常用实现方式:
- 继承:每添加一个共能,都要添加/修改子类。==导致耦合性强,子类膨胀==。
- 装饰器:显式调用,==动态==的为实体添加功能。子类与装饰类可以独立拓展。==导致耦合性低,子类独立发展,装饰类可复用==。
- 代理:隐藏了真实调用对象,使用者无感知。
缺点: 多层装饰比较复杂。即,将传入过实体类的装饰器,再传入装饰器。
多层装饰[^添加多个功能]
多个装饰器,定义不同的功能。
- 将实体传入装饰器,获得返回结果
- 将返回结果再次传入一个装饰器
- 得到一个额外添加了两个功能的实体