叙述
待续
示例代码
<?php
abstract class Component {
public abstract function execute();
}
class ConcerteComponent extends Component {
public function execute() {
// do something ...
echo __METHOD__."\n";
}
}
abstract class Decorator extends Component {
protected $_component;
public function __construct(Component $component) {
$this->_component = $component;
}
public function execute() {
$this->_component->execute();
}
}
class TextDecorator extends Decorator {
public function execute() {
//do something ...
echo __METHOD__."\n";
$this->_component->execute();
//do something ...
}
}
class ImgDecorator extends Decorator {
public function execute() {
//do something ...
echo __METHOD__."\n";
$this->_component->execute();
//do something ...
}
}
$o = new TextDecorator(new ImgDecorator(new ConcerteComponent()));
$o->execute();