这里有新鲜出炉的PHP设计模式,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于web开发领域。PHP的文件后缀名为php。
这篇文章主要介绍了PHP实现的策略模式,结合简单实例形式分析了策略模式的原理与实现方法,需要的朋友可以参考下
本文实例讲述了PHP实现的策略模式。分享给大家供大家参考,具体如下:
比如说购物车系统,在给商品计算总价的时候,普通会员肯定是商品单价乘以数量,但是对中级会员提供8者折扣,对高级会员提供7折折扣,这种场景就可以使用策略模式实现:
- <?php
- /**
- * 策略模式实例
- *
- */
- //抽象策略角色《为接口或者抽象类,给具体策略类继承》
- interface Strategy
- {
- public function computePrice($price);
- }
- //具体策略角色-普通会员策略类
- class GenernalMember implements Strategy
- {
- public function computePrice($price)
- {
- return $price;
- }
- }
- //具体策略角色-中级会员策略类
- class MiddleMember implements Strategy
- {
- public function computePrice($price)
- {
- return $price * 0.8;
- }
- }
- //具体策略角色-高级会员策略类
- class HignMember implements Strategy
- {
- public function computePrice($price)
- {
- return $price * 0.7;
- }
- }
- //环境角色实现类
- class Price
- {
- //具体策略对象
- private $strategyInstance;
- //构造函数
- public function __construct($instance)
- {
- $this->strategyInstance = $instance;
- }
- public function compute($price)
- {
- return $this->strategyInstance->computePrice($price);
- }
- }
- //客户端使用
- $p = new Price(new HignMember());
- $totalPrice = $p->compute(100);
- echo $totalPrice; //70
- ?>
希望本文所述对大家PHP程序设计有所帮助。
来源: http://www.phperz.com/article/17/0908/345353.html