位置: 编程技术 - 正文

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计算时间)

  • 税务师职业考试
  • 营业外收入交企业所得税可以扣除成本么
  • 企业所得税预缴后亏损
  • 应收账款是开票减去货款吗对吗
  • 金税盘减免账务处理
  • 待转销项税额明细科目核算一般纳税人
  • 出口退税收到退税款会计分录
  • 普通发票开折扣销售能冲减销售吗
  • 现金券违法吗
  • 劳务派遣公司工作内容描述
  • 修缮发票要注明什么
  • 企业以前年度的亏损在哪查
  • 一般纳税人库存商品怎么做分录
  • 增值税留抵税额账务处理
  • txp1atform.exe
  • 个人劳务费几个点
  • 教你如何在白桦树上采集桦树汁
  • mac系统回到桌面快捷键
  • 公司刚成立多久可以注销
  • zmweb.exe是什么进程
  • 在windows中安装应用程序的途径
  • 农村个体户需要报税吗
  • yarn的配置
  • 芒通,法国 (© Flavio Foglietta/Getty Images)
  • php缓存技术和静态化
  • 自身权益工具有哪些
  • 生产设备改良支出需要结转到本年利润吗
  • css样式修改
  • 语义特征的语法学概念
  • chkconfig命令参数
  • dns管理控制台在哪里
  • 金税盘全额抵扣政策
  • 报税系统清卡成功状态
  • 应收利息可以计入其他应收款吗
  • 销售的百分点怎么计算
  • 应付工资怎么记账
  • 织梦如何添加浮动广告
  • sql查询结果分页
  • 保税仓发货的商品退货要承担税吗
  • 个税的缴纳期数是什么
  • 城建税和教育附加税怎么算
  • 商场扣点怎么做分录
  • 出口退税的会计科目
  • 跨年进项发票怎样账务处理
  • 金税三期升级功能2020
  • 财务预付账款情况说明
  • 汇算清缴后补缴得企业所得税,计入哪年的税负
  • 跨年度发票作废已交税怎么办
  • 资产基金账务处理
  • 资产负债表的资产按流动性大小排列
  • 待处理财产损溢属于什么类科目?
  • 生物资产转让增值税
  • 借款利息如何记账
  • 免征增值税还要计提附加税吗
  • 小规模纳税人可以抵税吗
  • 暂估固定资产的账务处理
  • 限额领料单属于什么凭证多选题
  • 房地产会计如何报税
  • vidaa 破解
  • centos账号密码
  • windows怎样设置
  • linux-c
  • SIMETER.EXE - SIMETER是什么进程 有什么用
  • win8平板玩lol
  • 怎么快速更换苹果手机壁纸
  • win7删除文件
  • cocos2dx 3.0 beta android环境配置
  • cocos2djs
  • 保证windows 7安装后正常使用的安装方法
  • javascript date函数
  • javascript编写
  • .net 迭代器
  • js中ajax完整例子
  • 按钮控件有几种类型
  • python迭代器iterator
  • 上海自贸区税务大厅地址
  • 苏州税务中心
  • 医保可以直接到税局买吗?
  • 广东省国家税务总局稽查局局长
  • 深圳12366接听客服工作怎么样
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设