思想: 動態的將屬性附加到對象上, 比繼承更方便;
- 裝飾者的4個角色
- 抽象主體(AbsDrink)Component;
- 被裝飾者(咖啡)ConcreteComponent具體組件;
- 裝飾者Decorator;
- 具體裝飾者(配料)
- 案例: 咖啡 + 配料 的售價
- 未使用裝飾者模式
- 配料類組合咖啡導致配料類出現類爆炸問題, 加了新咖啡後還要生成對應的配料組合或加了新配料需要對所有咖啡類增加配料組合;
- 使用裝飾者模式
- 用法: 被裝飾者(咖啡)組合到裝飾者(配料)裏;
- 代碼實現
- Java中用到的地方