跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

PHP设计模式之装饰者模式代码实例_PHP教程

php设计模式之装饰者模式代码实例这篇文章主要介绍了php设计模式之装饰者模式代码实例,装饰者模式就是不修改原类代码和继承的情况下动态扩展类的功能,本文就给出了代码实例,需要的朋友可以参考下

定义:

装饰者模式就是不修改原类代码和继承的情况下动态扩展类的功能。传统的编程模式都是子类继承父类实现方法重载,使用装饰器模式,只需添加一个新的装饰器对象,更加灵活,避免类数量和层次过多。

角色:

Component(被装饰对象基类)立即学习“PHP免费学习笔记(深入)

”;

ConcreteComponent(具体被装饰对象) Decorator(装饰者基类) ContreteDecorator(具体的装饰者类)

示例代码:

?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384PHP 8.5.5PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。下载8586878889//被装饰者基类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;}}//具体装饰类Aclass 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;}}//具体装饰类Bclass 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 operationAdd Operation A*/$decoratorA = new ConcreteDecoratorA(new ConcreteComponent());$decoratorA->operation();/*do operationAdd Operation AAdd Operation B*/$decoratorB = new ConcreteDecoratorB($decoratorA);$decoratorB->operation();}}Client::main();http://www.bkjia.com/PHPjc/998354.html www.bkjia.com true http://www.bkjia.com/PHPjc/998354.html TechArticle PHP设计模式之装饰者模式代码实例 这篇文章主要介绍了PHP设计模式之装饰者模式代码实例,装饰者模式就是不修改原类代码和继承的情况下...

相关文章