位置: 编程技术 - 正文

PHP策略模式定义与用法示例(php常用设计模式(大总结))

编辑:rootadmin

推荐整理分享PHP策略模式定义与用法示例(php常用设计模式(大总结)),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php常见设计模式和用途,php设计模式六大原则,php策略模式定义为,php 模式设计,php 模式设计,php策略模式定义为,php策略模式定义为,php策略模式定义为,内容如对您有帮助,希望把文章链接给更多的朋友!

本文实例讲述了PHP策略模式定义与用法。分享给大家供大家参考,具体如下:

概述

策略模式属于对象的行为模式。其用意是针对一组算法,将每个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化

UML图

策略模式中主要角色

这个模式设计到三个角色:

环境角色(Context):持有一个Strategy的引用抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体的策略类所需的接口具体策略(ConcreateStrategy)角色:包装了相关的算法或行为

使用场景

假设现在要设计一个购物车系统,一个最简单的情况就是把所有货品的单价乘上数量,但是实际情况肯定比这个复杂。例如:对普通会员无折扣,对中级会员提供8折优惠,对高级会员提供7折优惠。

根据上述描述,货品价格是根据以下几个算法中的一个进行的:

PHP策略模式定义与用法示例(php常用设计模式(大总结))

对普通会员无折扣对中级会员8折对高级会员7折

UML图

实现代码:

回顾策略模式

策略模式的重心不是如何实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活,具有更好的扩展性和维护性

算法的平等性

策略模式一个很大的特点就是各个策略算法的平等性。对于一系列具体的策略算法,大家的地位是一样的,这样才能实现算法之间的互相转换

运行时策略的唯一性

运行期间,策略模式在每一个时刻只能使用一个具体的策略实现对象,虽然可以动态地在不同的策略实现中切换,但是同时只有一个

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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

PHP实现的Redis多库选择功能单例类 本文实例讲述了PHP实现的Redis多库选择功能单例类。分享给大家供大家参考,具体如下:前言qq群里有同学问redis如何进行多库选择,用php实现了一下,还望

PHP自定义函数判断是否为Get、Post及Ajax提交的方法 本文实例讲述了PHP自定义函数判断是否为Get、Post及Ajax提交的方法。分享给大家供大家参考,具体如下:/***是否是AJAx提交的*@returnbool*/functionisAjax(){if(iss

使用php自动备份数据库表的实现方法 1、前言mysql数据库的备份方式有很多;例如:1、使用mysqldump函数mysqldump-uusername-pdbnametable1table2...BackupName.sqldbname参数表示数据库的名称table1和table2参数

标签: php常用设计模式(大总结)

本文链接地址:https://www.jiuchutong.com/biancheng/287545.html 转载请保留说明!

上一篇:windows下的WAMP环境搭建图文教程(推荐)(wamp环境搭建的过程)

下一篇:PHP实现的Redis多库选择功能单例类(php rediscluster)

  • 一般纳税人转为小规模纳税人
  • 研发销售型企业
  • 收购分公司和谁签协议
  • 注销公司详细步骤
  • 什么公司可以开普票
  • 月利润报表怎么制作
  • 六个点的税率是小规模吗
  • 有限合伙企业利润先税后分
  • 同一控制下的企业合并的会计核算方法
  • 员工食堂报销的费用怎么做分录
  • 企业年金个人所得税最新规定
  • 劳务分包预缴税怎么算
  • 汽车维修行业工时标准
  • 控股合并吸收合并新设合并图示
  • 商品流通企业进货费用金额较小的计入什么科目
  • 免征增值税项目销售额含税吗
  • 收到场地租赁费用计入什么科目
  • 电子普通发票如何打印
  • 企业所得税为15%的企业
  • 无形资产减值损失后能不能转回
  • 营业范围是销售范围吗
  • 固定资产报废清理账务处理
  • iphone中的照片如何找回
  • 如何处理库存差异问题
  • 境外资金购买境内物业
  • 今天端午节?
  • 房产证和不动产权证都要办理吗
  • vit详解
  • php socket编程
  • 利息收入发票能抵扣吗
  • yii2框架结构
  • 营改增销售服务范围
  • 什么是技术服务工程师
  • 视同销售账务处理如何做?
  • 金融企业会计科目有哪些
  • 所得税弥补亏损年限10
  • 发票打印错误如何修改
  • 企业送的购物卡怎么退回去
  • 银行转账回执单掉了
  • Python支持向量能干什么
  • 【MongoDB for Java】Java操作MongoDB数据库
  • 广告牌制作加盟厂家
  • 生产车间制造产品领用材料45000元,领用车间一半消耗
  • 冲销未开票收入还需要申报吗
  • 补偿性余额实际利率计算公式
  • 工程材料如何管理
  • 五险一金会计科目分录
  • 成本不够如何计算出来
  • 买车的车
  • 管理费用有负数怎么结总账
  • 向投资者分配利润或股利为什么减少所有者权益?
  • 合并报表编制方法有几种
  • 固定资产一次性扣除账务处理
  • 个人保险发票能做账吗
  • 待认证进项发票哪里导出来数据
  • 预付账款属于资产项目吗
  • 销售收入包含哪些费用
  • 预收账款余额在贷方是什么意思
  • 银行卡转账怎么撤回转账的钱
  • 计税金额是什么科目
  • sqlserver优化方案
  • mysql与c++相连
  • windows注册表简单应用
  • win8系统怎么清理缓存
  • freebsd怎么用
  • win 7操作系统安装
  • backupnotify.exe是什么文件的进程 backupnotify进程安全吗
  • 苹果官网
  • win8语音助手怎么关闭
  • win10更新后qq打不开
  • cocos安装
  • nodejs的express框架详解
  • unity collider类属性方法
  • js 实现复制到粘贴功能
  • python压缩文件为gz
  • android开发电视app教程
  • 专项调查法
  • 耕地占用税林地有减免吗
  • 宁波国税局几点上班几点下班
  • 船舶税由谁代征
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设