PHP设计模式之装饰者模式代码实例
发布时间:2020-12-13 02:36:24 所属栏目:PHP教程 来源:网络整理
导读:《:PHP设计模式之装饰者模式代码实例》要点: 本文介绍了:PHP设计模式之装饰者模式代码实例,希望对您有用。如果有疑问,可以联系我们。 界说: PHP编程 装饰者模式就是不修改原类代码和继承的情况下动态扩展类的功能.传统的编程模式都是子类继承父类实现
《:PHP设计模式之装饰者模式代码实例》要点: 界说:PHP编程 装饰者模式就是不修改原类代码和继承的情况下动态扩展类的功能.传统的编程模式都是子类继承父类实现办法重载,使用装饰器模式,只需添加一个新的装饰器对象,更加灵活,避免类数量和层次过多.PHP编程 脚色:PHP编程 Component(被装饰工具基类) 示例代码:PHP编程 //被装饰者基类 interface Component { public function operation(); } //装饰者基类 abstract class Decorator implements Component { protected $component; public function __construct(Component $component) { $this->component = $component; } public function operation() { $this->component->operation(); } } //详细装饰者类 class ConcreteComponent implements Component { public function operation() { echo 'do operation'.PHP_EOL; } } //详细装饰类A class ConcreteDecoratorA extends Decorator { public function __construct(Component $component) { parent::__construct($component); } public function operation() { parent::operation(); $this->addedOperationA(); // 新增加的操作 } public function addedOperationA() { echo 'Add Operation A '.PHP_EOL; } } //详细装饰类B class ConcreteDecoratorB extends Decorator { public function __construct(Component $component) { parent::__construct($component); } public function operation() { parent::operation(); $this->addedOperationB(); } public function addedOperationB() { echo 'Add Operation B '.PHP_EOL; } } class Client { public static function main() { /* do operation Add Operation A */ $decoratorA = new ConcreteDecoratorA(new ConcreteComponent()); $decoratorA->operation(); /* do operation Add Operation A Add Operation B */ $decoratorB = new ConcreteDecoratorB($decoratorA); $decoratorB->operation(); } } Client::main(); 欢迎参与《:PHP设计模式之装饰者模式代码实例》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |