Design Pattern - Decorator Pattern (设计模式 - 装饰模式)

什么是Decorator Pattern

顾名思义,decorator pattern就是一种装饰性的模式,它的应用场景是 给对象动态的添加more responsibility - 真不知道咋翻译。我的理解就是 某类对象可以被令一类对象所装饰。看下面的例子。

有什么例子

以咖啡店为例子,咖啡店开发一个系统 来处理咖啡消费的结帐业务。咖啡店一共有四种咖啡 

1. Houseblend 2. Darkroast 3. Espresso 4. Decaf

对于每种咖啡,消费者可以添加以下任意一种添加剂.

1. Milk 2. Mocha 3. Whip 4. Soy

最终结账的价格是 咖啡的价格加上 消费者要求添加的添加剂价格的总和。

用类图来表示例子 - Decorator Pattern

对类图来解读

所有咖啡(最纯真的真实对象)继承Beverage类并实现cost 方法,所有的添加剂(对最纯真的真实对象的添加)继承CondimentDecorator. CondimentDecorator 也继承Beverage.  并且它对象中还包含一个Beverage(这里是精髓). 

最终代码的实现

华哲的git git

代码运行结果展示


欢迎交流学习

猜你喜欢

转载自blog.csdn.net/ytdxyhz/article/details/79539026