当前位置:   article > 正文

【PHP设计模式08】装饰模式

【PHP设计模式08】装饰模式

装饰模式

      装饰模式,又称装饰器模式 或 装饰者模式 或 油漆工模式,通过创建一个“装饰对象”,在不改变原有类和使用继承的情况下,动态地扩展一个对象的功能,比直接生成子类继承更加灵活,可以通过多个不同的具体装饰类,创建多个不同的行为组合。
      结构:

  • 抽象构件(Component):是一个接口或者抽象类,定义核心的原始对象,用来规范准备接收附加责任的对象。
  • 具体构件(ConcreteComponent):实现抽象构件,通过装饰角色为其添加一些职责。
  • 抽象装饰角色(Decorator):关联抽象构件,定义装饰器的属性和新的方法,包含具体构件的实例,可以通过其子类扩展具体构件的功能。
  • 具体装饰角色(ConcreteDecorator):抽象装饰的具体实现,并给具体构件对象添加附加的责任。

      示例:下面以一个订单服务为例,在不改动原有支付方法 payOrder() 的情况下,要求支付成功后给用户增加积分,这里用装饰模式来实现,目的是对 payOrder() 方法进行装饰,扩展功能:

  • 订单服务接口 抽象构件 OrderServiceInterface.php :
  1. <?php
  2. namespace app\design08\controller;
  3. //订单服务接口 抽象构件
  4. interface OrderServiceInterface
  5. {
  6. //创建订单
  7. public function c
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/159940?site
推荐阅读
相关标签
  

闽ICP备14008679号