位置: 编程技术 - 正文

轻松掌握php设计模式之访问者模式(php设计模式六大原则)

编辑:rootadmin

推荐整理分享轻松掌握php设计模式之访问者模式(php设计模式六大原则),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php设计模式及使用场景,php设计模式及使用场景,php设计总结,轻松掌握php设计软件,php设计模式详解,php设计是什么,轻松掌握php设计代码,轻松掌握php设计软件,内容如对您有帮助,希望把文章链接给更多的朋友!

访问者模式解决的问题

在我们的代码编写过程当中,经常需要对一些类似的对象添加一些的代码,我们以一个计算机对象打印组成部分为例来看下:

轻松掌握php设计模式之访问者模式(php设计模式六大原则)

这个时候上面的代码看上去好像很完美的样子,但是问题来了,现在我们不但需要打印组成部分,还需要保存各个组件到数据库,不仅如此,还需要打印各个组件的价格;此时如果在Unit基类中添加getPrice()和save()方法,也能实现我们想要的功能,但是这样做也存在问题,你并不知道还需要新增什么操作,如果每新增一个操作都用这样的方法来新增,我们的类会变得越来越臃肿。

访问者模式的实现

而访问者模式就是为了解决这个问题的,他把数据结构和作用于结构之上的操作之间的耦合解脱开,使得操作集合可以相对自由的演化,我们来看下面改良过得代码:

总结

经过上面的改良之后,我们要扩展就变得非常容易,如果我们需要新增保存到数据库的方法,可以在新增一个实现了Visitor的类,比如SaveVisitor,在该类中来实现保存的方法,等于我们把该类和该类中的一些操作解藕了出来,而集合了类操作的对象就是访问者。

标签: php设计模式六大原则

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

上一篇:适合PHP初学者阅读的4本经典书籍(php哪本书最好)

下一篇:php源码 fsockopen获取网页内容实例详解(php源码 数据库)

  • 建筑业总产值含税吗百度百科
  • 存货是根据总账科目计算填列吗
  • 无票收入在增值税表中填哪
  • 怎么看运费
  • 不征税发票需要预缴税款吗
  • 小企业今年怎么过
  • 最新增值税申报表及附表下载
  • 公司购买车库是什么费用
  • 二手车增值税发票怎么开
  • 展会门票费计入什么科目
  • 应收账款补提坏账是什么意思
  • 供应商采购额变动原因有哪些
  • 海运费需要代扣代缴吗
  • 买车交税怎么算价格
  • 个人技术转让所得需要交税吗
  • 资产负债表属于会计报表吗
  • 普通机打发票可以抵税吗
  • 所得税的税率有哪几种
  • 今年调整上年收入的政策
  • 纳税额和纳税总额
  • 税务局增项
  • 办公费差旅费属于
  • 预付账款如何计提折旧
  • 何为民办非企业
  • 基本户是否可以冻结
  • 公司为员工购买社保流程
  • ie浏览器阻止
  • mac怎么卸载软件core sync
  • 提取的坏账准备怎么算
  • 如何做批发
  • 建筑业会计需要做到哪些
  • 贷款损失准备的作用
  • 【强化学习探索01】Win10 下gym安装
  • thinkphp跨域解决方案
  • yii gridview
  • 对公打款打错了
  • SE注意力机制加在什么位置
  • js中写php代码
  • 机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测
  • web前端开发规范有哪些
  • 开个人劳务发票怎么缴个人所得税
  • 免抵退税额怎么计算城建税
  • 公司给买员工保险
  • java io读写
  • SQL server 2008安装程序遇到以下错误 sku
  • PostgreSQL安装、配置及简单使用方法
  • dedecms怎么改图片
  • 人工安装费是几个点税税率
  • 固定资产折旧计算表模板
  • 公司交1500五险一金是什么水平
  • 收缩数据库日志文件对数据有影响吗
  • sql2005附加数据库出错
  • 房产租赁增值税率是5%还是9%
  • 小规模出售固定资产账务处理
  • 企业计提坏账准备时应该借记什么科目
  • 实收资本变更登记
  • 留抵进项税太多怎么办
  • 已经发出的商品替换零部件进成本还是费用
  • 公司股东可以买公司股票吗
  • 结汇时和月底结转汇兑损益
  • 收回投标保证金 建立台账
  • 结转未交增值税会计处理
  • 为什么我们需要政府
  • Win10 Build 17035自制64位中国版十合一ISO镜像下载地址
  • ubuntu2004分区教程
  • linux设置用户名和密码
  • linux中sed
  • centos ssh升级
  • windows7桌面背景怎么设置
  • win10 20h2怎么更新
  • img引入图片
  • js网页自动化
  • node.js deno
  • angularjs4
  • 日历查询的算法怎么写
  • android基础知识大全
  • android四大组件五大布局
  • eclipse折叠代码块if else工具
  • 深入python3
  • 外经证怎么核验
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设