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

PHP策略模式定义与用法(详解)

这篇文章主要介绍了 php 策略模式定义与用法,结合实例形式简单分析了php策略模式的原理、实现与使用方法,需要的朋友可以参考下 具体如下: 概述 策略模式属于对象的行为模式。其用意是针对一组算法,将每个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化 UML图 立即学习 “ PHP免费学习笔记(深入) ”; PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载 策略模式中主要角色 这个模式设计到三个角色: 环境角色(Context) :持有一个Strategy的引用 抽象策略(Strategy)角色 :这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体的策略类所需的接口 具体策略(ConcreateStrategy)角色 :包装了相关的算法或行为 使用场景 假设现在要设计一个购物车系统,一个最简单的情况就是把所有货品的单价乘上数量,但是实际情况肯定比这个复杂。例如:对普通会员无折扣,对中级会员提供8折优惠,对高级会员提供7折优惠。 根据上述描述,货品价格是根据以下几个算法中的一个进行的: 对普通会员无折扣 对中级会员8折 对高级会员7折 UML图 立即学习 “ PHP免费学习笔记(深入) ”; 实现代码:
strategyInstance = $instance; } /** * 计算货品的价格 * * @param double $price */ public function quote ($price) { return $this->strategyInstance->calPrice($price); } } /** * 客户端操作 */ $high = new HighStrategy(); $priceClass = new Price($high); $price = $priceClass->quote(400); echo $price; ?>
回顾策略模式 策略模式的重心不是如何实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活,具有更好的扩展性和维护性 算法的平等性 策略模式一个很大的特点就是各个策略算法的平等性。对于一系列具体的策略算法,大家的地位是一样的,这样才能实现算法之间的互相转换 运行时策略的唯一性 运行期间,策略模式在每一个时刻只能使用一个具体的策略实现对象,虽然可以动态地在不同的策略实现中切换,但是同时只有一个 相关推荐: 使用PHP策略模式 JS的策略模式使用详解 实例分析PHP策略模式

相关文章