php装饰者模式简单应用案例分析

 更新时间:2019年10月23日 10:23:31   作者:学知无涯  
这篇文章主要介绍了php装饰者模式简单应用,结合具体实例形式分析了php装饰者模式的原理及文章编辑相关应用操作技巧,需要的朋友可以参考下

本文实例讲述了php装饰者模式简单应用。分享给大家供大家参考,具体如下:

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

示例:

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 . '<br/>' . '编辑A新写的内容';
  }
  public function decorator(){
    return $this->content;
  }
}
class editor_B extends Article{
  public function __construct(Article $obj){
    $this->content = $obj->content . '<br/>' . '编辑B新写的内容';
  }
  public function decorator(){
    return $this->content;
  }
}
class editor_C extends Article{
  public function __construct(Article $obj){
    $this->content = $obj->content . '<br/>' . '编辑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面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • php中文乱码问题的终极解决方案汇总

    php中文乱码问题的终极解决方案汇总

    乱码是我们在开发可能经常遇见,也是最让人头疼的一个问题了,下面这篇文章主要介绍了在php开发中,可能遇见中文乱码问题的终极解决方案,文中介绍好几个情况下的解决方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08
  • PHP实现的方程求解示例分析

    PHP实现的方程求解示例分析

    这篇文章主要介绍了PHP实现的方程求解,结合具体实例形式较为详细的分析了针对具体需求使用php进行方程求解的实现技巧,需要的朋友可以参考下
    2016-11-11
  • php 模拟POST提交的2种方法详解

    php 模拟POST提交的2种方法详解

    本篇文章是对php模拟POST提交的2种方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php上传文件并存储到mysql数据库的方法

    php上传文件并存储到mysql数据库的方法

    这篇文章主要介绍了php上传文件并存储到mysql数据库的方法,以完整实例形式较为详细的分析了php操作文件上传与数据库存储的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP实现的简易版图片相似度比较

    PHP实现的简易版图片相似度比较

    这篇文章主要介绍了PHP实现的简易版图片相似度比较,本文直接给出实现代码,使用方法请看代码中的注释,需要的朋友可以参考下
    2015-01-01
  • php基于协程实现异步的方法分析

    php基于协程实现异步的方法分析

    这篇文章主要介绍了php基于协程实现异步的方法,结合实例形式分析了php基于协程调度的异步操作实现方法,需要的朋友可以参考下
    2019-07-07
  • php的instanceof和判断闭包Closure操作示例

    php的instanceof和判断闭包Closure操作示例

    这篇文章主要介绍了php的instanceof和判断闭包Closure操作,结合实例形式分析了PHP使用instanceof判断类实例以及判断闭包Closure相关操作技巧,需要的朋友可以参考下
    2020-01-01
  • PHP实现简单的模板引擎功能示例

    PHP实现简单的模板引擎功能示例

    这篇文章主要介绍了PHP实现简单的模板引擎功能,结合实例形式详细分析了PHP实现模板引擎功能的模版类、编译类、控制器类及模板文件等实现方法与相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • php进行ip地址掩码运算处理的方法

    php进行ip地址掩码运算处理的方法

    这篇文章主要介绍了php进行ip地址掩码运算处理的方法,涉及php字符串及网络操作相关技巧,需要的朋友可以参考下
    2016-07-07
  • PHP删除数组中特定元素的两种方法

    PHP删除数组中特定元素的两种方法

    今天小编就为大家分享一篇关于PHP删除数组中特定元素的两种方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02

最新评论