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

发布时间 - 2026-01-11 02:58:00    点击率:

本文实例讲述了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  # 策略模式  # php 策略模式原理与应用深入理解  # php策略模式简单示例分析【区别于工厂模式】  # php设计模式之策略模式应用案例详解  # PHP设计模式之策略模式原理与用法实例分析  # PHP实现的策略模式示例  # PHP策略模式定义与用法示例  # PHP行为设计模式之策略模式  # 程序设计  # 操作技巧  # 相关内容  # 感兴趣  # 给大家  # 购物车  # 更多关于  # 所述  # 面向对象  # 就可以  # 客户端  # 抽象类  # 讲述了  # interface  # lt  # function  # computePrice  # Strategy  # public 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 智能起名网站制作软件有哪些,制作logo的软件?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  Laravel如何处理CORS跨域请求?(配置示例)  如何用花生壳三步快速搭建专属网站?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  如何在VPS电脑上快速搭建网站?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  Laravel如何配置和使用缓存?(Redis代码示例)  如何在腾讯云免费申请建站?  如何快速生成可下载的建站源码工具?  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  如何用已有域名快速搭建网站?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  JavaScript如何操作视频_媒体API怎么控制播放  网站制作免费,什么网站能看正片电影?  如何快速生成凡客建站的专业级图册?  如何快速建站并高效导出源代码?  如何在万网开始建站?分步指南解析  Laravel如何实现用户注册和登录?(Auth脚手架指南)  canvas 画布在主流浏览器中的尺寸限制详细介绍  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  bootstrap日历插件datetimepicker使用方法  香港服务器网站卡顿?如何解决网络延迟与负载问题?  香港服务器租用每月最低只需15元?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  在线制作视频网站免费,都有哪些好的动漫网站?  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  油猴 教程,油猴搜脚本为什么会网页无法显示?  微信小程序 require机制详解及实例代码  C#如何调用原生C++ COM对象详解  进行网站优化必须要坚持的四大原则  如何在腾讯云服务器快速搭建个人网站?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  Laravel storage目录权限问题_Laravel文件写入权限设置  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  Laravel API资源类怎么用_Laravel API Resource数据转换  Laravel定时任务怎么设置_Laravel Crontab调度器配置  jquery插件bootstrapValidator表单验证详解  网站建设保证美观性,需要考虑的几点问题!  公司网站制作需要多少钱,找人做公司网站需要多少钱?  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  Laravel集合Collection怎么用_Laravel集合常用函数详解  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?