1.如何理解装饰模式
- 油漆工模式
- 基于目标对象添加额外职责(功能扩展)
2.装饰模式场景分析
- IO(BufferReader) new BufferedReader(new FileReader)
- mybatis(CacheExecutor)
- spring()
3.装饰模式角色构成
- Component:抽象组件角色(可以是接口,也可以是抽象)
- ConcreteComponent:具体组件角色(除了实现接口外也可以继承抽象角色)
- Decorator:抽象装饰类(可以省略)
- ConcreteDecorator:具体装饰类
4.应用分析
- 提供了相比于继承具有更加灵活的功能扩展方式
- 实现相对复杂,同时也会产生很多类