写在前面的话: 该模式动态的将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案.装饰者可以在被装饰者的行为前面与/或后面加上自己的行为,甚至将被装饰者的行为整个取代掉,而达到特定的目的. 该模式的实现意味着一群装饰者类,这些类反映出被装饰的组件类型,用来包装具体组件. 缺点在于,可以用无数个装饰者包装一个组件,但会导致设计中出现许多小对象,如果过度引用,会让程序变得很复杂. 案例分析: 需求:模拟 StarbuzzCoffee 的订单系统,咖啡原种类为Espresso,Hou…