时间:2021-07-01 10:21:17 帮助过:18人阅读
装饰器模式就是对一个已有的结构增加装饰。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。
基本说来, 如果想为现有对象增加新功能而不想影响其他对象, 就可以使用装饰器模式.
Decorator
component = $component; } public function operation() { $this->component->operation(); } abstract public function before(); abstract public function after();}ConcreteComponent
ConcreteDecoratorA 添加了before和after方法,即在原有操作的基础上之前和之后又添加了职责
before(); parent::operation(); $this->after(); } public function before() { // TODO: Implement before() method. echo "before!!!"; } public function after() { // TODO: Implement after() method. echo "after!!!"; }}CLient主要用来实例化装饰器
operation(); $decoratorB=new ConcreteDecoratorA($decoratorA); $decoratorB->operation(); }}调用Clien main()方法结果
before!!!hello world!!!!after!!!before!!!before!!!hello world!!!!after!!!after!!!