装饰模式设计模式

装饰模式定义

在不改变现有对象结构的情况下,动态的给该对象增加一些额外的功能的模式。

装饰模式详解

使用场景

  • 需要扩展一个类的功能,或给一个类添加附加职责。
  • 需要动态的给一个对象添加功能,这些功能可以再动态的撤销。
  • 需要增加由一些基本功能的排列组合而产生的非常大的功能,从而使继承关系变得不现实。
  • jdk 中的 io 流的创建方式就是用的包装模式。

图解

07 装饰者模式流程图.png

装饰模式优缺点

优点

  1. 装饰模式扩展对象的功能比采用继承的方式更加灵活。
  2. 可以设计出多个不同的具体装饰类,创造出多个不同的行为的组合。

缺点

  1. 装饰模式增加了许多子类,如果过度的使用的化会使程序变得更加复杂。
  2. 装饰模式会导致设计中出现许多小类,如果过度使用,会使程序变得更加复杂。

装饰模式总结

设计模式中装饰者模式替代了继承关系,简化了程序结构,为其装饰的对象增强功能,其对扩展开发,丢修改关闭。