装饰者模式 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 . '
' . '编辑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装饰者模式简单应用案例分析相关推荐
- oauth password模式_史上最干的Oauth案例分析
一.什么是Oauth2 OAuth 2.0是目前最流行的授权机制,用来授权第三方应用,获取用户数据,访问用户资源. 1.授权码模式的第三方登录架构 client:第三方应用.eg:使用qq 或者微信 ...
- 【设计模式】装饰者模式 ( 概念 | 适用场景 | 优缺点 | 与继承对比 | 定义流程 | 运行机制 | 案例分析 )
文章目录 I . 装饰者模式概念 II . 装饰者模式适用场景 III . 装饰者模式优缺点 IV . 装饰者模式与继承对比 V . 装饰者模式相关设计模式 VI . 装饰者模式四个相关类 VII . ...
- 装饰着模式示例_装饰器设计模式示例
装饰着模式示例 本文是我们名为" Java设计模式 "的学院课程的一部分. 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们. 您将了解模式如此重要的原 ...
- django 类视图装饰器_灵活视图处理的模式,第2部分–使用装饰器
django 类视图装饰器 For years, we've been so busy discussing the virtues and drawbacks of the model/contro ...
- c语言装饰,C/C++知识点之装饰器模式(Decorator) C++
本文主要向大家介绍了 C/C++知识点之装饰器模式(Decorator) C++,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助.装饰器模式是比较常用的一种设计模式,Python中就 ...
- 设计模式之结构型模式:适配器模式、桥接模式、组合模式、装饰器模式、代理模式、
文章目录 什么是结构型模式 适配模式 适配器的数据结构 适配器的实现 缺省适配器 适配器优缺点 适配器模式的使用环境 桥接模式 桥接模式数据结构 桥接模式的实现 桥接模式和适配器模式的联用 桥接模式的 ...
- 米线店结账程序 装饰着模式_设计模式——装饰者模式
<Head First 设计模式> 学习笔记,码云同步更新中 如有错误或不足之处,请一定指出,谢谢~ 目录 查看其它设计模式笔记,点这里→设计模式笔记汇总 装饰者模式 定义: 动态地将责任 ...
- JavaScript设计模式(三):结构型设计模式-外观模式、适配器模式、代理模式、装饰者模式、桥接模式、组合模式、享元模式
JavaScript设计模式 - 结构型设计模式 套餐服务-外观模式 外观模式(Facade) 水管弯弯-适配器模式 适配器模式(Adapter) 适配异类框架 参数适配 牛郎织女-代理模式 代理模式 ...
- 6中结构型设计模式的对比理解(Composite组合模式,Proxy代理模式,Flyweight享元模式,Facade门面模式,Bridge桥接模式,Decorator装饰器模式)
结构型模式 结构型模式用来组装 类和对象,以获得更大的结构. 结构型类模式,通过继承机制来组合接口或类.简单的例子就是多重继承,最后一个类拥有所有父类的性质.这个模式有助于独立开发一个协同类.另一个例 ...
最新文章
- numpy中的矩阵与数学上的矩阵的关系
- mysqlmediumtext,分享面经!
- C#中File的使用
- windows 技巧篇-查看文件夹被那个进程占用,文件夹占用解除方法
- 01-sql优化及索引
- Hello Indigo
- 程序员---不要对自己说“不可能”
- java中图的封装,模拟java 中地图的功能封装一个有序的地图
- 深度学习 3 循环神经网络 RNN Recurrent Neural Networks
- mysql 编码php,php-MySQL的编码问题(和基础知识)
- 测试开发之软件测试模型
- 计算机管理 网络延时打开,如何解决网络延时-如何解决局域网访问延迟问题?通过局域网访问网内机子,有时候半天没 爱问知识人...
- java快捷键设置sop,今日工作总结|sop整理
- 20145202马超《信息安全系统设计基础》实验三总结
- 数百台浪潮服务器支撑中石油油品加工生产系统
- java创建ssh链接池_HttpClient实战三:Spring整合HttpClient连接池
- 微信小程序实现秒杀、拼团、团购等效果
- 千兆路由器什么牌子好?家用千兆路由器2018排行!
- 博途编程语言切换_从一种编程语言切换到另一种:灵活的好处
- realtek 8111E 网卡 修改MAC 地址