1. 定义

动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。

Java IO 使用的就是装饰器模式。

2. 通用类图

(12)设计模式-装饰器模式

3. 装饰器的优缺点

3.1 优点

  1. 装饰类和被装饰类可以独立发展,而不会相互耦合。
  2. 装饰模式是继承关系的一个替代方案。
  3. 装饰器模式可以动态地扩展一个实现类的功能。

3.2 缺点

多层的装饰是比较复杂的。

4. 装饰模式的使用场景

  1. 需要扩展一个类的功能,或给一个类增加附加功能。
  2. 需要动态地给一个对象增加功能,这些功能可以再动态地撤销。
  3. 需要为一批的兄弟类进行改装或加装功能,当然是首选装饰模式。

5. 装饰器模式特殊地方

  1. 装饰器类和原始类继承同样的父类,可以对原始类“嵌套”多个装饰器类。
  2. 装饰器类是对功能的增强,这也是装饰器模式应用场景的一个重要特点。

相关文章:

  • 2021-05-12
  • 2021-08-01
  • 2021-04-05
  • 2021-07-13
  • 2021-04-27
猜你喜欢
  • 2021-07-17
  • 2021-07-22
  • 2021-06-18
  • 2021-04-15
  • 2021-09-30
  • 2022-12-23
相关资源
相似解决方案