什么是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(这里是精髓).
最终代码的实现
代码运行结果展示
欢迎交流学习