PHP策略模式定义和使用示例
本文通过实例说明了PHP策略模式的定义和用法。分享给大家参考,如下:
摘要
策略模式属于对象的行为模式。其目的是将每个算法封装成一个独立的类,并为一组算法提供一个公共接口,以便它们可以相互替换。策略模式允许算法在不影响客户端的情况下更改
uml统一模型语言
政策模式中的主要角色
这个模型被设计成三个角色:
Context:持有Strategy的引用抽象Strategy角色:这是一个抽象角色,通常通过一个接口或者抽象类来实现。该角色为接口提供了所有具体策略类所需的具体策略角色:它封装了相关的算法或行为
使用场景
假设我们现在要设计一个购物车系统,最简单的情况就是所有商品的单价乘以数量,但实际情况绝对比这个复杂。比如普通会员不打折,中级会员打八折,高级会员打三折。
根据上面的描述,商品的价格基于以下算法之一:
普通会员不打折,中级会员打八折,高级会员打三折
uml统一模型语言
实现代码:
?Php/** *策略抽象类* @ authorwzy * */接口策略{公共函数cal price($ price);}/* * *普通成员策略类* * @ authorwzy * */类初级策略实现策略{ public function cal price($ price){ echo '普通成员没有折扣';返回$ price}}/* * *中间成员策略类* * @ authorwzy * */class中间策略实现策略{ public function cal price($ price){ echo '中间成员打八折';返回$ price * 0.8}}/* * *高级会员策略类* * @ authorwzy * */类高级策略实现策略{ public function cal price($ price){ echo '高级会员打三折';返回$ price * 0.7}}/** *上下文实现类* * @作者wzy * */类Price{ /** *具体策略类对象* * @ varobject */private $ strategy instance;/* * *构造函数,传入特定的策略对象* * @ param object $ instance */public function _ _ construct($ instance){ $ this-strategy instance=$ instance;}/* * *计算商品的价格* * @ param double $ price */public function quote($ price){ return $ this-strategy instance-cal price($ price);}}/* * *客户端操作*/$ high=new high strategy();$priceClass=新价格($ high);$ price=$ price class-quote(400);echo $价格;回顾战略模式
策略模式的重点不是如何实现算法,而是如何组织和调用这些算法,使程序结构更加灵活,具有更好的可扩展性和可维护性
算法等式
策略模式的一大特点是每个策略算法的平等性。对于一系列具体的策略算法,每个人的地位都是一样的,从而实现算法之间的相互转换
运行时策略的唯一性
在运行期间,策略模式每次只能使用一个特定的策略实施对象。虽然它可以在不同的策略实现之间动态切换,但同时只有一个策略实现
更多对PHP相关内容感兴趣的读者可以查看本网站专题:《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》、《php常见数据库操作技巧汇总》、0103010
希望本文对PHP编程有所帮助。
版权声明:PHP策略模式定义和使用示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。