php设计模式之装饰模式实例代码
<?php
header("Content-type:text/html;charset=utf-8"); /**
* 文章编辑类
*/
class Article
{
protected $content;
protected $art = null;
public function __construct($content)
{
$this->content = $content;
}
public function decorator(){
return $this->content;
}
} /**
* 小编加个摘要
*/
class BianArticle extends Article
{
public function __construct(Article $art){
$this->art = $art;
$this->decorator();
} public function decorator()
{
return $this->content = $this->art->content."小编加了个摘要<br>";
}
} /**
* SEO对文章描述做了个修改
*/
class SEOArticle extends Article
{
public function __construct(Article $art){
$this->art = $art;
$this->decorator();
} public function decorator()
{
return $this->content = $this->art->content."SEO对文章描述做了个修改<br>";
}
} $b = new SEOArticle(new BianArticle(new Article("完成了文章编辑<br>")));
echo $b->decorator();
php设计模式之装饰模式实例代码的更多相关文章
- php设计模式之适配器模式实例代码
<?php header("Content-type:text/html;charset=utf-8"); // 适配器模式 /** * 查看天气接口 */ class Ti ...
- php设计模式之观察者模式实例代码
php提供的两个接口,一个被观察者接口SplSubject,一个或多个观察者接口SPLObserver,和一个可以储存对象的类SplObjectStorage.被观察者有三个方法,需要实现这三个方法, ...
- php设计模式之多态实例代码
<?php header("Content-type:text/html;charset=utf-8"); /** * 虎 */ abstract class Tiger { ...
- 【Python】《大话设计模式》Python版代码实现
<大话设计模式>Python版代码实现 上一周把<大话设计模式>看完了,对面向对象技术有了新的理解,对于一个在C下写代码比较多.偶尔会用到一些脚本语言写脚本的人来说,很是开阔眼 ...
- java设计模式之装饰模式
发现设计模式的学习越来越让自己学习的东西太少了,应该多接触一些东西,多出去走一走. 装饰模式概念: 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活(大话设计模式) 在不 ...
- 乐在其中设计模式(C#) - 装饰模式(Decorator Pattern)
原文:乐在其中设计模式(C#) - 装饰模式(Decorator Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 装饰模式(Decorator Pattern) 作者:weba ...
- 设计模式:装饰模式(decorate)
还是那几句话: 学无止境,精益求精 十年河东,十年河西,莫欺少年穷 学历代表你的过去,能力代表你的现在,学习代表你的将来 废话不多说,直接进入正题: 今天学习了装饰模式,但是代码看不太懂,于是我将装饰 ...
- C++11 变长模版和完美转发实例代码
C++11 变长模版和完美转发实例代码 #include <memory>#include <iostream>#include <vector>#include ...
- PHP读取超大文件的实例代码
数据量大带来的问题就是单个文件很大,能够打开这个文件相当不容易,记事本就不要指望了,果断死机 去年年底的各种网站帐号信息的数据库泄漏,很是给力啊,趁机也下载了几个数据库,准备学学数据分析家来分析一 ...
随机推荐
- opencv —— Laplacian 拉普拉斯算子、二阶导数用于边缘检测
Laplacian 算子简介 求多元函数的二阶导数的映射又称为 Laplacian 算子: 计算拉普拉斯变换:Laplacian 函数 void Laplacian(InputArray src, ...
- [20200103]GUID转换GUID_BASE64.txt
[20200103]GUID转换GUID_BASE64.txt --//最近在做一个项目优化,里面大量使用uuid.优缺点在链接:http://blog.itpub.net.x.y265/viewsp ...
- py二级习题(提取文本,并计数)
with open(r"C:\Users\mike1\Desktop\practice_txt.txt","r",encoding = "gbk&qu ...
- Python标准库之hashlib模块与hmac模块
hashlib模块用于加密相关的操作.在Python 3.x里代替了md5模块和sha模块,主要提供 SHA1.SHA224.SHA256.SHA384.SHA512 .MD5 算法.如果包含中文字符 ...
- 解决vmware每次打开无法上网
vmware网络配置好了,但是每次打开都无法上网,记录下 在计算机管理中启动这几个服务,就ok了
- 为什么SSL证书要设有效期?
1.首先是为了安全考虑,CA机构不能保证一个网站永远是合法的,因此它需要定期检查网站. 2.其次,以往CA证书都非常贵,签发证书的机构通过设置期限来收费,是一种商业途径. 3.最后,还有最重要的原因就 ...
- js动画函数
var tween = { linear: function (t, b, c, d) { return c * t / d + b; }, easeIn: function (t, b, c, d) ...
- 疫情下的传统商企自救|4个Tips搭建销量过亿直播间
新冠肺炎爆发以来,线下商企遭受巨大冲击.出于疫情防控需要,不少门店选择暂时停业:而消费者们更是响应号召.足不出户.这场疫情促使消费者的消费习惯和方式进一步转向线上订购转变,直播.短视频等领域逆势而起, ...
- SVM-支持向量机(一)线性SVM分类
SVM-支持向量机 SVM(Support Vector Machine)-支持向量机,是一个功能非常强大的机器学习模型,可以处理线性与非线性的分类.回归,甚至是异常检测.它也是机器学习中非常热门的算 ...
- MongoDB,使用C#实现2d地理位置检索
这两天在研究mongoDB,从零开始接触它,为什么要研究它呢,因为它支持2d地图索引,而且速度非常快,可以用它来做类似微信的(摇一摇功能),不过网上很难搜到.net操作的,而且就算搜索到了也不能用,也 ...