Advertisement

Qt-decorator pattern

阅读量:
  1. 界定装饰者模式

装饰者模式 通过动态方式将职责赋予对象。在需要拓展功能时,该模式相较于继承方式展现出更高的灵活性与可扩展性。

  • 装饰者与被装饰对象具有统一的父类结构
  • 单个或多个装饰者均可用于封装某一对象
  • 因为装饰者与被装饰对象具备相同的类型特征,因此在所有原本需要使用原始对象的场景中,均可采用经过装饰后的对象进行替代
  • 装饰者可以在执行所委托的被装饰者行为之前或之后,插入自身的行为逻辑,从而实现特定的功能需求
  • 对象的装饰过程可在任意时刻进行,这意味着在程序运行过程中可以灵活、无限制地应用各种装饰者来增强对象功能
  1. 类图

3. 举例说明

在选购咖啡的过程中,可以添加多种附加成分,比如:牛奶(milk)、摩卡(mocha)、奶泡(whip)

所添加的配料不同,相应的收费也会有所差异。

此时人们通常会认为,只需按照所选物品支付对应费用即可。例如,若顾客需要一杯咖啡搭配牛奶与摩卡,则应支付这三者费用的总和。现实生活中也确实如此。

倘若采用装饰器模式该如何处理?

解决方法如下:

将饮料作为基

全部评论 (0)

还没有任何评论哟~