23种设计模式 VOL.8: 装饰者模式
思想: 动态的将属性附加到对象上, 比继承更方便;
- 装饰者的4个角色
- 抽象主体(AbsDrink)Component;
- 被装饰者(咖啡)ConcreteComponent具体组件;
- 装饰者Decorator;
- 具体装饰者(配料)
- 案例: 咖啡 + 配料 的售价
- 未使用装饰者模式
- 配料类组合咖啡导致配料类出现类爆炸问题, 加了新咖啡后还要生成对应的配料组合或加了新配料需要对所有咖啡类增加配料组合;
- 使用装饰者模式
- 用法: 被装饰者(咖啡)组合到装饰者(配料)里;
![]()
- 代码实现
- Java中用到的地方