PHP实现的策略模式简单示例

yipeiwu_com6年前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相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

php和javascript之间变量的传递实现代码

PHP variable to Javascript variable: 复制代码 代码如下: <?php $myvar=10; ?> <script type="te...

手把手教你打印出PDF(关于fpdf的简单应用)

今天使用的类叫FPDF,FPDF这个PHP Class允许你采用纯PHP(更确切地说就是不需要使用PDFlib)来生成PDF文件。它以PHP Class展现并且加速PDF文档在编程语言中...

PHP中调试函数debug_backtrace的使用示例代码

PHP中调试函数debug_backtrace的使用示例代码

前言 如果我们想知道某个方法被谁调用了? debug_backtrace可以解决。debug_backtrace() 可以打印出一个页面的调用过程 , 从哪儿来到哪儿去一目了然。...

浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)

我们通过前篇:<浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)>,已经知道后端获取服务器变量,很多来自客户端传入的。跟普通的get,post没有什么不同。下面我们...

通过php删除xml文档内容的方法

本文实例讲述了通过php删除xml文档内容的方法。分享给大家供大家参考。具体实现方法如下: 第一种情况:删除一个student节点 复制代码 代码如下:<?php //1、...