Files
Hui-s-notebook/203-Java/203.1-Java面试/205.19-网络&操作系统/装饰模式.md
2023-09-10 10:50:53 +08:00

839 B

Attach additional responsibilities to an object dynamically keeping the same interface.Decorators provide a flexible alternative to subclassing for extending functionality.(动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。)

  • Component 抽象构件
  • ConcreteComponent 具体构件
  • Decorator 装饰角色
  • 具体装饰角色

优点

  • 装饰类和被装饰类可以独立发展
  • 装饰模式是继承关系的一个替代方案
  • 装饰模式可以动态扩展一个实现类的功能

缺点

多层的装饰是比较复杂的

使用场景

  • 需要扩展一个类的功能,或给一个类增加附加功能
  • 需要动态地给一个对象增加功能,这些功能可以再动态地撤销
  • 需要为一批的兄弟类进行改装或加装功能