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

 更新时间:2017年08月25日 15:45:40   作者:LoveJulin  
这篇文章主要介绍了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对文件夹递归执行chmod命令的方法

    PHP对文件夹递归执行chmod命令的方法

    这篇文章主要介绍了PHP对文件夹递归执行chmod命令的方法,可实现递归执行chmod命令改变文件夹执行权限的功能,需要的朋友可以参考下
    2015-06-06
  • PHP实现的数组和XML文件相互转换功能示例

    PHP实现的数组和XML文件相互转换功能示例

    这篇文章主要介绍了PHP实现的数组和XML文件相互转换功能,结合实例形式分析了php针对xml格式数据与数组相互转换操作技巧,需要的朋友可以参考下
    2018-03-03
  • PHP中str_replace函数使用小结

    PHP中str_replace函数使用小结

    在实际的程序开发中,执行字符串替换操作是一件非常经常的事,对str_replace函数的实用也会非常频繁。
    2008-10-10
  • 写出高质量的PHP程序

    写出高质量的PHP程序

    这是一个很老的话题了,现在的PHP程序员都在追求所谓的高性能,但高性能并不代表是高质量,什么是高质量的PHP程序呢?我认为,高质量的PHP程序首先得具备以下的要素
    2012-02-02
  • PHP自动选择 连接本地还是远程数据库

    PHP自动选择 连接本地还是远程数据库

    假设我们要在test.php文件中操作虚拟主机的数据库,则首先要在本地调试,那么必然要连接本地、远程两个不同的数据库,问题:怎么让test.php自动识别当下该连接本地还是远程数据库呢?
    2010-12-12
  • php懒人函数 自动添加数据

    php懒人函数 自动添加数据

    php懒人函数 自动添加数据,需要的朋友可以参考下。
    2011-06-06
  • PHP插件PHPMailer发送邮件功能

    PHP插件PHPMailer发送邮件功能

    这篇文章主要为大家详细介绍了PHP发送邮件功能,一个PHPMailer插件轻松实现邮件发送功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • PHPUnit PHP测试框架安装方法

    PHPUnit PHP测试框架安装方法

    PHPUnit是一个轻量级的PHP测试框架。它是在PHP5下面对JUnit3系列版本的完整移植,是xUnit测试框架家族的一员(它们都基于模式先锋Kent Beck的设计)。
    2011-03-03
  • PHP数组去重的更快实现方式分析

    PHP数组去重的更快实现方式分析

    这篇文章主要介绍了PHP数组去重的更快实现方式,结合实例形式对比分析了php实现数组去重的各种常见操作技巧与注意事项,需要的朋友可以参考下
    2018-05-05
  • PHP中source #N问题的解决方法

    PHP中source #N问题的解决方法

    最近写PHP里面的查询经常会遇到source #4或者source#5这样的问题,下面有个不错的解决方法,大家可以尝试下
    2014-01-01

最新评论