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备份/还原MySQL数据库的代码

    PHP备份/还原MySQL数据库的代码

    之前是采用PHP读取数据库结构和内容,然后写文件,这样可能会导致导出的文件不一定能百分百导入到MySQL中去,想想之后采用MySQL自带的导入导出命令最保险
    2011-01-01
  • php实现通过cookie换肤的方法

    php实现通过cookie换肤的方法

    这篇文章主要介绍了php实现通过cookie换肤的方法,通过cookie存储用户选择信息实现换肤效果,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • PHP中常见的缓存技术实例分析

    PHP中常见的缓存技术实例分析

    这篇文章主要介绍了PHP中常见的缓存技术,以实例形式较为详细的分析了php中缓存技术的原理、特点及使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • IIS+fastcgi下PHP运行超时问题的解决办法详解

    IIS+fastcgi下PHP运行超时问题的解决办法详解

    本篇文章是对IIS+fastcgi下PHP运行超时问题的解决办法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP抽象工厂模式Abstract Factory Pattern优点与实现方式

    PHP抽象工厂模式Abstract Factory Pattern优点与实现方式

    这篇文章主要介绍了PHP抽象工厂模式Abstract Factory Pattern优点与实现方式,抽象工厂模式是一种创建型模式,它提供了一种创建一系列相关或相互依赖对象的最佳方式
    2023-03-03
  • php+ajax无刷新上传图片实例代码

    php+ajax无刷新上传图片实例代码

    这篇文章为大家分享了php+ajax无刷新上传图片实例代码,需要的朋友可以参考下
    2015-11-11
  • PHP函数shuffle()取数组若干个随机元素的方法分析

    PHP函数shuffle()取数组若干个随机元素的方法分析

    这篇文章主要介绍了PHP函数shuffle()取数组若干个随机元素的方法,结合实例形式详细分析了shuffle函数的功能,定义,使用方法与相关注意事项,需要的朋友可以参考下
    2016-04-04
  • php抽象方法和抽象类实例分析

    php抽象方法和抽象类实例分析

    这篇文章主要介绍了php抽象方法和抽象类,结合实例形式分析了php抽象方法和抽象类的概念、功能、定义与使用方法,需要的朋友可以参考下
    2016-12-12
  • PHP使用pdo实现事务处理操作示例

    PHP使用pdo实现事务处理操作示例

    这篇文章主要介绍了PHP使用pdo实现事务处理操作,结合实例形式较为详细的分析了php基于pdo实现事务处理的相关原理与操作技巧,需要的朋友可以参考下
    2018-09-09
  • PHP实现的最大正向匹配算法示例

    PHP实现的最大正向匹配算法示例

    这篇文章主要介绍了PHP实现的最大正向匹配算法,简单描述了最大正向匹配算法的概念、原理并结合实例形式分析了php实现与使用最大正向匹配算法的相关操作技巧,需要的朋友可以参考下
    2017-12-12

最新评论