位置: 编程技术 - 正文

PHP解耦的三重境界(浅谈服务容器)(js解耦)

编辑:rootadmin

推荐整理分享PHP解耦的三重境界(浅谈服务容器)(js解耦),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php解耦的三重境界是什么,php解耦是什么意思,php解耦的三重境界指的是,php解耦的三重境界指的是,php解耦是什么意思,php解耦的三重境界是什么,php解耦是什么意思,php解耦的三重境界是什么,内容如对您有帮助,希望把文章链接给更多的朋友!

阅读本文之前你需要掌握:PHP语法,面向对象

在完成整个软件项目开发的过程中,有时需要多人合作,有时也可以自己独立完成,不管是哪一种,随着代码量上升,写着写着就“失控”了,渐渐“丑陋接口,肮脏实现”,项目维护成本和难度上升,到了难以维持的程度,只有重构或者重新开发。

第一重境界

假设场景:我们需要写一个处理类,能够同时操作会话,数据库和文件系统。我们或许会这么写。

境界特征:可以运行,但是严重耦合

写法缺点:

1.在公有函数中构造对象,一旦涉及到如数据库参数的变动,修改会有很大的工作量

2.负责设计Writer类的人员需要对DB等类的各种API要熟悉

有没有办法降低耦合度?

PHP解耦的三重境界(浅谈服务容器)(js解耦)

第二重境界(参数依赖)

假设场景:数据库地址因为客户不同,需要经常更换,调用到DB的类很多(假如有几十个),希望即使更改了数据库地址,也不用去修改这些类的代码。

虽然把DB类的构造移到了客户端,一旦涉及修改,工作量大大降低,但是新问题来了:为了创建一个Writer类,我们需要先创建好DB类,FileSystem类等,这对负责涉及Writer类的人来说,要求是很高的,他需要看很多其他类文档,一个个创建(可能还需要初始化),然后才能创建出他要的writer变量。

所以,我们希望,能有一种更好的写法,使得写Writer类的人,用一种更加快捷的接口,就能创建和调用他要的类,甚至连参数都不用填。

第三重境界(IOC容器)

经过前两重境界,我们希望能新增以下这些好处:

1.希望DB类,Session类,FileSystem类“拿来即用”,不用每次繁琐的初始化,比如写$db=new DB(arg1,arg2);这类语句。

2.希望DB等类型的对象是“全局”,在整个程序运行期间,随时可以调用。

3.调用DB等类型的程序员不用知道这个类太多的细节,甚至可以用一个字符串的别名来创建这样一个对象。

能够实现以上目标的就是IOC容器,可以把IOC容器简单的看成一个全局变量,并用关联数组把字符串和构造函数做绑定。

我们先实现一个容器类

服务注册(绑定)

容器依赖

标签: js解耦

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

上一篇:PHP控制反转(IOC)和依赖注入(DI)(php反转字符串方法)

下一篇:PHP计算近1年的所有月份(php计算时间)

  • 出租设备的租金收入记入( )账户
  • 进口商品需要缴纳VAT税吗
  • 注册资本金入账需要缴税么
  • 公款私存个人账户怎么处理
  • 个体户需要税务申报吗?
  • 个税申报表中的基本养老保险怎么填
  • 应纳税所得额为什么要减去60000
  • 买金税盘怎么做账
  • 成本核算方法有先进先出法吗
  • 利润率多少才是正常的
  • 通过物流中心再送货配货属视同销售吗
  • 差额事业单位的工资是由财政开支吗
  • 刚开始建账银行有存款怎么录
  • 公司购买网络交换机入什么会计科目
  • 从个人处借款的法律规定
  • 收到违约金应缴增值税吗
  • 小规模纳税人网上申报税务操作流程
  • 免抵调增值税是否缴纳附加税
  • 企业支付的工伤费用怎么入账
  • 发票不一致是什么原因
  • 保证金利息收入怎么开票
  • 费用报销是先记账后付款还是先付款后记账
  • 子公司借款给母公司要交税吗
  • 房地产记账凭证
  • 集体福利的增值税怎么算
  • 以前工程发票如何抵扣
  • 小规模纳税人会计核算健全,能够提供准确
  • 财务费用为什么会出现负数
  • 如何安装os x
  • 固定资产清理借贷方向增减变动
  • 企业对外捐赠设备会计分录
  • 腾讯电脑管家中的软件市场打不开
  • php远程调用
  • 未开票的销售收入分录
  • linux去除文本中的特殊符号
  • 采用定额法计算产品成本,其程序如何?
  • 诉讼费属于什么费用
  • opencv.
  • php连接redis集群
  • 销售费用属于损益类科目的收入还是费用
  • 30岁之后去面试
  • 当深度学习遇上Web开发:Spring和OpenAI如何实现图片生成?
  • sed多个命令匹配条件格式
  • 受托代销的分录
  • 培训费开票属于哪个征收明目
  • mysql更新视图的方式
  • 利息收入计入借方
  • mysql日期和时间类型
  • 小规模减免的增值税要交所得税吗
  • 存货报废进项税额需要转出吗
  • 社保个税申报是什么意思
  • 小微企业所得税怎么算
  • 待抵扣进项税在贷方怎么冲掉
  • 以前年度损益调整怎么做账
  • 设备安装业绩
  • 道路交通事故中施救费应如何处理?
  • 农业公司土地租赁
  • 外贸企业退税政策
  • 给职工交的商业险是什么
  • 什么情况下增值税发票不能抵扣
  • 明细账设置是什么意思
  • sql server字符串函数
  • win8系统进不了桌面怎么办
  • win10周年更新版是什么意思
  • linux系统的介绍
  • win7系统检测
  • pygal python
  • android.intent.extra.text
  • 修改bash_profile
  • js对象类型的语法规则
  • 如何用jquery
  • python multinomial
  • 深入理解计算机系统 电子书
  • jquery的实现原理
  • 未开票收入如何申报增值税
  • 支付给境外的特许权使用费
  • 中山市十大纳税大户
  • 企业吸收合并资质
  • 临港税务局第四分局电话
  • 全年个人一次性奖金单独计税优惠
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设