抽象装饰器
private $_component;public function __construct(Component $component) { $this-_component = $component;}public fuction show(){ $this-_component-show()}
具体组件
public function show(){ // 操作}
具体装饰器B
public fuction show(){ parent::operation(); // 自己的方法b}
抽象组件
abstract function show()
具体装饰器A
public fuction show(){ parent::operation(); // 自己的方法a}
装饰器:对类的非继承扩展,更自由的组合类的功能客户端实现:$com = new 具体组件()$de1 = new 具体装饰A($com)$de2 = new 具体装饰B($de1)$de2.show()达到效果:执行了具体组件的方法,执行了装饰器a的operation,最后执行了装饰器b的方法