位置: 编程技术 - 正文

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)

  • 所得税费用是什么科目
  • 增值税征税范围中销售应税服务包括什么服务
  • 财产租赁合同印花税率多少
  • 金蝶未结账是否可以重新起账
  • 利润表年底净利润是正数吗
  • 申报后发现未勾选发票
  • 进项税额转出怎么算
  • 设定受益计划会计处理案例
  • 期房购置税怎么算
  • 年终奖如何合理发放
  • 个人生产所得税计算
  • 银行如何做存款
  • 当月开的发票次月预缴税款行得通吗?
  • 并购投资的方式有哪些
  • 加油费充值卡发票可以报销吗
  • 按月付息到期还本的贷款可以提前还款吗
  • 本月进项大于销项怎么做会计分录
  • 自然人销售固定资产
  • 费用与支出的区别是什么
  • 电子汇票如何使用
  • 委托出口业务的账务如何处理呢?
  • 车辆购置税如何做账
  • 1697508432
  • 残保金申报有什么用
  • 预缴税金跨区域涉税在哪查询
  • 零星工程实施流程
  • 质量扣款入什么科目
  • intelin
  • 小规模纳税人的增值税怎么算
  • 社保费税前扣还是税后扣
  • thinkphp5开发教程
  • php or
  • 'The Wave' sandstone formation in Coyote Buttes North, Paria Canyon-Vermilion Cliffs National Monument, Arizona (© Dennis Frates/Alamy)
  • 公交车停车场收费吗
  • php自定义字段
  • 前端工程搭建
  • 工程实践指的是
  • phpcms添加内容
  • php rtrim
  • 利用php抓取蜘蛛网
  • get_module_base
  • 转出未交增值税会计处理
  • 一般纳税人季报还是月报
  • 银行承兑到期怎么入账
  • 科研项目财政拨款怎么算
  • 基建拨款在新政府会计制度对应什么科目
  • mysql查询并设置变量
  • 年底计提坏账收回一部分怎么处理
  • 文化事业建设费会计分录
  • 报销招待费的会计科目
  • 交房租会计分录怎么写好
  • 外币收款怎么做账
  • 优惠券会计分录怎么做
  • 银行手续费没拿可以退吗
  • 年度纳税总额包括个税吗
  • 员工报销停车费计入什么科目
  • 建筑行业总产值占我国GDP的比重
  • 个体工商户如何给员工交五险一金
  • 公对私 预付款 税
  • mysql的操作方法
  • sql server的mdf文件怎么导入数据库
  • innodb底层实现原理
  • UNIX系统中文件的索引表结构
  • linux系统 虚拟机
  • centos6创建文件
  • windowxp系统升级
  • sharedprem.exe - sharedprem是什么进程 有什么作用
  • windows怎么更改网络状态
  • win8 metro启动界面
  • Windows 7 Apache下计算机无法访问局域网网站的解决方法
  • 电脑windows8怎么样
  • cocoscreator lua
  • 五个常用的视频格式及其特点
  • shell脚本的实现
  • 河北税务怎么看自己绑定的银行卡号
  • 广东怎么交农村合作医疗保险
  • 江苏税务登录密码是几位
  • 新都税务局咨询电话号码
  • 开健身会所国家有补贴吗
  • 税务局社保服务
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设