@H_502_1@装饰者模式:动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。@H_502_1@喜欢喝咖啡的朋友们,通常都不会满足于原味。因此,在著名的星巴克,个人觉得一杯咖啡30多,纯粹是去为了装逼?我们会看到大家购买咖啡时,会要求在其中加入各种调料,比如蒸奶、豆浆、摩卡、奶泡…… @H_502_1@当这么多个性化的需求要被满足,我们不禁好奇它强大的订单系统是如何实现的。 @H_502_1@难道是设计成下面的鬼样子?
- 以DarkRoast对象开始
- 顾客想要摩卡,所以建立一个mocha对象,并用它将DarkRoast对象包起来
- 顾客想要奶泡,所以需要建立一个Whip装饰者,并用它将Mocha对象包起来。
- 调用最外圈的whip的cost就可以计算出价格。
@H_502_1@设计模式,祝愿你把代码写成艺术。 @H_502_1@6/13/2017 1:48:51 PM