摘要:概念装饰模式顾名思义,装饰模式是一种对对象数据的多次过滤,就像装饰一样,一层层的修饰,获取满意的结果。实现装饰者装饰操作这是个洗菜操作。总结当我们需要对数据进行过滤的时候,装饰模式可以成为你的选择
概念:
装饰模式: 顾名思义,装饰模式是一种对对象数据的多次过滤,就像装饰一样, 一层层的修饰, 获取满意的结果。 装饰模式共分为两个部分: 1: 装饰者: 在这个接口接口下面的类和方法用以对数据进行修饰(即对数据进行过滤修改) 2: 被装饰者: 这个就是要被过滤的数据接口对象情景:
炒菜之前要对买来的菜进行拣菜, 洗菜等操作。这个就类似于装饰操作, 装饰者就是洗净的过程操作, 被装饰者就是菜。实现:
//装饰者 abstract class Decorator { //装饰操作 abstract function process(Cai $cai); } class XiCai extends Decorator { public function process(Cai $cai) { echo "这是个洗菜操作。结果:
"; } } //被装饰者 abstract class Cai { abstract function getGanJingZhi(); } //青菜 class QingCai extends Cai { public function getGanJingZhi() { return 2; } } //白菜 class BaiCai extends Cai { public function getGanJingZhi() { return 3; } } //让已经装饰的装饰者再进行新的装饰,表示多步过滤 abstract class DecorateActor extends Decorator { protected $decorator; public function __construct(Decorator $d) { $this->decorator = $d; } function process(Cai $cai) { $this->decorator->process($cai); } } //拣菜操作 class JianCai extends DecorateActor { public function process(Cai $cai) { echo "这是个拣菜操作。
"; parent::process($cai); //进行下一步过滤 } } //泡菜操作 class PaoCai extends DecorateActor { public function process(Cai $cai) { echo "这是个浸泡操作。
"; parent::process($cai); //进行下一步过滤 } } $cai = new QingCai(); $process = new JianCai(new PaoCai(new XiCai($cai))); $process->process($cai);
这是个拣菜操作。 这是个浸泡操作。 这是个洗菜操作。
总结: 当我们需要对数据进行过滤的时候, 装饰模式可以成为你的选择
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/20852.html
摘要:装饰器模式解决的问题修饰模式,是面向对象编程领域中,一种动态地往一个类中添加新的行为的设计模式。可以看到,这样的模型很具有扩者性,我们可以轻松的添加其他装饰器给区域对象,且不需要更改其他类, 装饰器模式解决的问题 修饰模式,是面向对象编程领域中,一种动态地往一个类中添加新的行为的设计模式。就功能而言,修饰模式相比生成子类更为灵活,这样可以给某个对象而不是整个类添加一些功能。 将所有的功...
摘要:概念装饰器模式允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 概念 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的...
摘要:我们可以把取消发货单和取消订单看成一个被观察或被订阅的类实例的对象,一旦发生取消行为,我们立即通知各个观察者做出相对应的行为。装饰器模式装饰器思想,不管以前业务逻辑,甚至不去读,调用之前的接口装饰上新的数据,达到自己的目的。 前言 还是每月的目标至少写一篇文章,一晃八月份就要过去了,这个月依然没有什么产出,毫无疑问最近的状态就是不停的工作,不停的加班。所以还是把最近工作进行一个总结,首...
阅读 3508·2023-04-25 20:41
阅读 2664·2023-04-25 16:40
阅读 1436·2021-09-23 11:44
阅读 1257·2021-09-10 10:51
阅读 1684·2021-09-07 09:59
阅读 1644·2019-12-27 12:08
阅读 554·2019-08-30 15:44
阅读 3334·2019-08-30 11:08