interface Component
{
public function operation();
}
class ConcreteComponent implements Component
{
public function operation()
{
return 'ConcreteComponent operation.';
}
}
abstract class Decorator implements Component
{
protected $component;
public function __construct(Component $component)
{
$this->component = $component;
}
public function operation()
{
return $this->component->operation();
}
}
class ConcreteDecoratorA extends Decorator
{
public function operation()
{
return 'ConcreteDecoratorA operation.' . $this->component->operation();
}
}
class ConcreteDecoratorB extends Decorator
{
public function operation()
{
return 'ConcreteDecoratorB operation.' . $this->component->operation();
}
}
$componentA = new ConcreteComponent();
$decoratorA = new ConcreteDecoratorA($componentA);
$decoratorB = new ConcreteDecoratorB($decoratorA);
echo $decoratorB->operation();
PHP代码实现装饰模式
最新推荐文章于 2024-07-26 17:57:56 发布