在不修改核心功能的情况下进行装饰,称之为装饰器模式。
class BaseArt
{
protected $content;
protected $art = null;
public function __construct($content)
{
$this->content = $content;
}
public function decorator()
{
return $this->content;
}
}
class BianArt extends BaseArt
{
public function __construct(BaseArt $art)
{
$this->art = $art;
}
public function decorator()
{
return $this->content = $this->art->decorator() . "<br />文章摘要<br />";
}
}
class SEOArt extends BaseArt
{
public function __construct(BaseArt $art)
{
$this->art=$art;
}
public function decorator()
{
return $this->content = $this->art->decorator() . "<br />SEO关键字<br />";
}
}
$Bian = new SEOArt(new BianArt( new BaseArt('天天写文章')));
echo $Bian->decorator();