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读取超大文件的实例代码
数据量大带来的问题就是单个文件很大,能够打开这个文件相当不容易,记事本就不要指望了,果断死机 去年年底的各种网站帐号信息的数据库泄漏,很是给力啊,趁机也下载了几个数据库,准备学学数据分析家来分析一 ...
随机推荐
- LeetCode 面试题 02.02. 返回倒数第 k 个节点
题目链接:https://leetcode-cn.com/problems/kth-node-from-end-of-list-lcci/ 实现一种算法,找出单向链表中倒数第 k 个节点.返回该节点的 ...
- [CF1311B] WeirdSort
Solution 按照 \(p[i]\) 进行分段,如果某个 \(k\) 不存在 \(p[i]=k\),那么就把 \(i,i+1\) 分割开 处理出每一段的左端点和右端点 进而处理出每段的最小值和最大 ...
- js Dom为页面中的元素绑定键盘或鼠标事件
html鼠标事件 onload 页面加载 onclick 鼠标单击 onmouseover 鼠标移入 onmouseout 鼠标移出 onfocus 获取焦点 onblur 失去焦点 onchange ...
- 导航贴 | IT Crypt 密码学优秀博文
Base64编码: 什么是Base64? 一篇文章彻底弄懂Base64编码原理 Morse密码: 看似神秘,实则简单的装逼利器-摩斯密码 Bacon 密码: 密码学笔记 -- 培根密码 RSA 加密: ...
- STM32 & RT-Thread的逆向入门
STM32 & RT-Thread的逆向入门 backahasten@0xFA 现在,各种MCU的价格越来越低,同等条件下能买到的ROM和RAM资源也多了.对 ...
- Chrome 插件 postman 可以在线post
地址:https://chrome.google.com/webstore/detail/fhbjgbiflinjbdggehcddcbncdddomop
- mui退出登录
html部分: <button id='promptBtn' type="button" class="mui-btn mui-btn-block mui-btn- ...
- linux命令su,sudo 使用和区别
1- sudo 与 su 两个命令的最大区别是: sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码.另外一个区别是其默认行为.sudo 命令只允许使用提升的权限运行单个命 ...
- JAVA8对象属性的计算
Men men = new Men(); men.setName("UU"); men.setAge("56"); Men men1 = new Men(); ...
- hackintosh和windows时区问题
最近搞了几台黑苹果,驱动.平台.引导基本搞明白了.但安装成功之后,发现一个问题,切换系统之后,时间老是差了几个小时. 这肯定是时区设置的事儿!百度之后,发现简单地往Windows注册表中写了一条信息就 ...