怎么在php中应用装饰者模式-创新互联

这期内容当中小编将会给大家带来有关怎么在php中应用装饰者模式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

10余年的孝义网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整孝义建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“孝义网站设计”,“孝义网站推广”以来,每个客户项目都认真落实执行。

装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。

示例:

A、B、C编辑同一篇文章。

class Article{
  protected $content;
  public function __construct($info){
    $this->content = $info;
  }
}
class editor_A extends Article{
  public function __construct(Article $obj){
    $this->content = $obj->content . '
' . '编辑A新写的内容';   }   public function decorator(){     return $this->content;   } } class editor_B extends Article{   public function __construct(Article $obj){     $this->content = $obj->content . '
' . '编辑B新写的内容';   }   public function decorator(){     return $this->content;   } } class editor_C extends Article{   public function __construct(Article $obj){     $this->content = $obj->content . '
' . '编辑C新写的内容';   }   public function decorator(){     return $this->content;   } } $artCls = new Article('你好'); //编辑A先秀修改,然后编辑B修改,然后编辑C修改 $a = new editor_A($artCls); $b = new editor_B($a); $c = new editor_C($b); echo $c->decorator(); //编辑B先秀修改,然后编辑A修改 $b = new editor_B($artCls); $a = new editor_A($b); echo $a->decorator(); //重点是传递参数的地方,使用Article $obj传递上一个操作的对象, //来实现对同一个对象进行连续操作

运行结果:

你好
编辑A新写的内容
编辑B新写的内容
编辑C新写的内容你好
编辑B新写的内容
编辑A新写的内容

上述就是小编为大家分享的怎么在php中应用装饰者模式了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


文章名称:怎么在php中应用装饰者模式-创新互联
当前地址:http://scyanting.com/article/dspocc.html