装饰器模式
<?php
class BaseArticle{
protected $art = null;
protected $content;
public function __construct($content){
$this->content = $content;
}
public function decorator(){
return $this->content;
}
}
//编辑文章摘要
class EditArticle extends BaseArticle{
public function __construct(BaseArticle $art){
$this->art = $art;
}
public function decorator(){
return $this->content = $this->art->decorator() . '编辑摘要';
}
}
//SEO搜索关键词
class SEOArticle extends BaseArticle{
public function __construct(BaseArticle $art){
$this->art = $art;
}
public function decorator(){
return $this->content = $this->art->decorator() . 'SEO关键词';
}
}
//每一个装饰器,只是对父类内容的修饰,并不进行修改,并递归的返回内容给调用的子类
$d = new EditArticle(new SEOArticle(new BaseArticle('好好学习天天向上')));
echo $d->decorator();