什么是Decorator Pattern

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

有什么例子

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

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

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

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

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

用类图来表示例子 - Decorator Pattern

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

对类图来解读

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

最终代码的实现

华哲的git git

代码运行结果展示

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

欢迎交流学习

相关文章:

  • 2020-03-02
  • 2021-12-04
  • 2021-04-16
  • 2022-01-22
  • 2021-08-25
  • 2021-06-02
猜你喜欢
  • 2022-02-25
  • 2019-06-13
  • 2021-11-11
  • 2021-11-28
  • 2021-10-03
相关资源
相似解决方案