装饰者模式,就是套娃,一层接一层
interface Decorator
{
public function display();
}
class xiaoming implements Decorator
{
public function display()
{
echo "初始层" . "<br>";
}
}
abstract class clothes implements Decorator{
private $component;
public function __construct(Decorator $component){
$this->component = $component;
}
public function display() {
$this->component->display();
}
}
class shirt extends clothes {
public function display() {
echo "第二层" . "<br>";
parent::display();
}
}
class overcoat extends clothes {
public function display() {
echo "第三层" . "<br>";
parent::display();
}
}
class something extends clothes {
public function display() {
echo "第四层" . "<br>";
parent::display();
}
}
$xiaoming=new xiaoming();
$xiaoming_shirt=new shirt($xiaoming);
$xiaoming_overcoat=new overcoat($xiaoming_shirt);
$xiaoming_something=new something($xiaoming_overcoat);
$xiaoming_something->display();