装饰者(Decorator)模式
定义
动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更加有弹性的替代方案。
需求
咖啡店买饮料,有不同的的基本咖啡,Cappuccino和Latte,然后有各种不同的调料,比如sugar, milk, salt. 不同的饮料有不同的价格和描述。
传统设计
定义咖啡类,然后不同调料的不同咖啡继承该类。
Decorator模式
采用装饰的方式包含一个对象,从而实现功能的拓展。
试用范围
该模式试用于许多功能需要拓展,但是又希望自由组合时。