装饰器模式:
可以动态的添加,修改某一个类的功能
特点:
1:创建一个可以被其他类可以实现的类
2:创建一个功能类去实现刚才定义的类
发现:
装饰器模式与观察者模式,适配器模式,这几种模式存在着一定的相似关系
代码:
//定义一个可以实现的类
interface decorator{
public function before(){}
public function after(){}
}
/**
* 颜色装饰器
**/
class Color implements Decorator
{
protected $color;
//构造器
public function __construct($color)
{
$this->color = $color;
}
//前置操作
public function before()
{
echo "<p style='color: {$this->color}'>";
}
//后置操作
public function after()
{
echo "</p>";
}
}
$color = new Color("#000");
$color->before();
$color->after();