装饰模式设计模式
装饰模式定义
在不改变现有对象结构的情况下,动态的给该对象增加一些额外的功能的模式。
装饰模式详解
使用场景
- 需要扩展一个类的功能,或给一个类添加附加职责。
- 需要动态的给一个对象添加功能,这些功能可以再动态的撤销。
- 需要增加由一些基本功能的排列组合而产生的非常大的功能,从而使继承关系变得不现实。
- jdk 中的 io 流的创建方式就是用的包装模式。
图解
装饰模式优缺点
优点
- 装饰模式扩展对象的功能比采用继承的方式更加灵活。
- 可以设计出多个不同的具体装饰类,创造出多个不同的行为的组合。
缺点
- 装饰模式增加了许多子类,如果过度的使用的化会使程序变得更加复杂。
- 装饰模式会导致设计中出现许多小类,如果过度使用,会使程序变得更加复杂。
装饰模式总结
设计模式中装饰者模式替代了继承关系,简化了程序结构,为其装饰的对象增强功能,其对扩展开发,丢修改关闭。