本文实例讲述了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 . '
' . '编辑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,php装饰者模式简单应用案例分析相关推荐

  1. oauth password模式_史上最干的Oauth案例分析

    一.什么是Oauth2 OAuth 2.0是目前最流行的授权机制,用来授权第三方应用,获取用户数据,访问用户资源. 1.授权码模式的第三方登录架构 client:第三方应用.eg:使用qq 或者微信 ...

  2. 【设计模式】装饰者模式 ( 概念 | 适用场景 | 优缺点 | 与继承对比 | 定义流程 | 运行机制 | 案例分析 )

    文章目录 I . 装饰者模式概念 II . 装饰者模式适用场景 III . 装饰者模式优缺点 IV . 装饰者模式与继承对比 V . 装饰者模式相关设计模式 VI . 装饰者模式四个相关类 VII . ...

  3. 装饰着模式示例_装饰器设计模式示例

    装饰着模式示例 本文是我们名为" Java设计模式 "的学院课程的一部分. 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们. 您将了解模式如此重要的原 ...

  4. django 类视图装饰器_灵活视图处理的模式,第2部分–使用装饰器

    django 类视图装饰器 For years, we've been so busy discussing the virtues and drawbacks of the model/contro ...

  5. c语言装饰,C/C++知识点之装饰器模式(Decorator) C++

    本文主要向大家介绍了 C/C++知识点之装饰器模式(Decorator) C++,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助.装饰器模式是比较常用的一种设计模式,Python中就 ...

  6. 设计模式之结构型模式:适配器模式、桥接模式、组合模式、装饰器模式、代理模式、

    文章目录 什么是结构型模式 适配模式 适配器的数据结构 适配器的实现 缺省适配器 适配器优缺点 适配器模式的使用环境 桥接模式 桥接模式数据结构 桥接模式的实现 桥接模式和适配器模式的联用 桥接模式的 ...

  7. 米线店结账程序 装饰着模式_设计模式——装饰者模式

    <Head First 设计模式> 学习笔记,码云同步更新中 如有错误或不足之处,请一定指出,谢谢~ 目录 查看其它设计模式笔记,点这里→设计模式笔记汇总 装饰者模式 定义: 动态地将责任 ...

  8. JavaScript设计模式(三):结构型设计模式-外观模式、适配器模式、代理模式、装饰者模式、桥接模式、组合模式、享元模式

    JavaScript设计模式 - 结构型设计模式 套餐服务-外观模式 外观模式(Facade) 水管弯弯-适配器模式 适配器模式(Adapter) 适配异类框架 参数适配 牛郎织女-代理模式 代理模式 ...

  9. 6中结构型设计模式的对比理解(Composite组合模式,Proxy代理模式,Flyweight享元模式,Facade门面模式,Bridge桥接模式,Decorator装饰器模式)

    结构型模式 结构型模式用来组装 类和对象,以获得更大的结构. 结构型类模式,通过继承机制来组合接口或类.简单的例子就是多重继承,最后一个类拥有所有父类的性质.这个模式有助于独立开发一个协同类.另一个例 ...

最新文章

  1. numpy中的矩阵与数学上的矩阵的关系
  2. mysqlmediumtext,分享面经!
  3. C#中File的使用
  4. windows 技巧篇-查看文件夹被那个进程占用,文件夹占用解除方法
  5. 01-sql优化及索引
  6. Hello Indigo
  7. 程序员---不要对自己说“不可能”
  8. java中图的封装,模拟java 中地图的功能封装一个有序的地图
  9. 深度学习 3 循环神经网络 RNN Recurrent Neural Networks
  10. mysql 编码php,php-MySQL的编码问题(和基础知识)
  11. 测试开发之软件测试模型
  12. 计算机管理 网络延时打开,如何解决网络延时-如何解决局域网访问延迟问题?通过局域网访问网内机子,有时候半天没 爱问知识人...
  13. java快捷键设置sop,今日工作总结|sop整理
  14. 20145202马超《信息安全系统设计基础》实验三总结
  15. 数百台浪潮服务器支撑中石油油品加工生产系统
  16. java创建ssh链接池_HttpClient实战三:Spring整合HttpClient连接池
  17. 微信小程序实现秒杀、拼团、团购等效果
  18. 千兆路由器什么牌子好?家用千兆路由器2018排行!
  19. 博途编程语言切换_从一种编程语言切换到另一种:灵活的好处
  20. realtek 8111E 网卡 修改MAC 地址

热门文章

  1. 从rpm包中提取文件的命令
  2. Iphone4信号,苹果象个被惯坏的孩子
  3. RADIO控件变量添加
  4. 建立网站的全套流程与详细解释(转载)
  5. mongodb聚合查询-aggregate
  6. 成外集训小记(更新到7.31)
  7. HTTP Status 400,400 (Bad Request)
  8. 如何访问局域网的Access数据库?
  9. TCGA三个在线可视化网站
  10. 简单的PL/SQl链接远程ORACLE数据库方法