位置: 编程技术 - 正文

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

  • 上月多计提增值税
  • 转登记纳税人按规定再次登记为一般纳税人后
  • 哪些费用可在缴纳医保
  • 股权收购收购方支付的期间损益计入
  • 合作社开具的免税农产品发票
  • 应收账款核销的会计处理
  • 出差补助没有发票计入什么科目
  • 工程款抵房款账务怎么做
  • 企业受托开发软件是什么
  • 商业企业购货分录
  • 库存商品报废进项转出
  • 企业所得税属于什么科目
  • 增值税税负多少算高
  • 企业开发票的人员要经过培训吗?
  • 个人如何开劳务费怎么开
  • 企业增值税不可以跨月交吗
  • 银行手续费可以抵扣企业所得税吗
  • 预付卡发票报销单怎么写
  • 土地出售涉及哪些税
  • 发票拍照打印出来能用吗
  • 一般纳税人小微企业认定标准
  • 从租计征的税率
  • 利润表适用执行小企业
  • 1697510710
  • 银行定期存款转存
  • windows10如何卸载edge
  • 应收账款的内容包括
  • thinkphp5开发教程
  • php正则表达式实例
  • 腾达路由器默认网关
  • 杜鹃花怎么养家庭养法视频
  • 计算机存储信息的基本单位是( )A字长B速度C内存D字节
  • vue2editor
  • 排污费计入应交税费吗
  • 营业利润,利润总额的计算公式是
  • 会计账务处理年限规定
  • 税控盘是干什么用的操作有风险吗
  • 其他应收账款属于
  • php常用命令
  • flask实现登录
  • 增值税发票复印件可以入账吗与原件一致
  • dom常用方法
  • 房地产转让条例最新
  • 小规模增值税减征额怎么算
  • 帝国cms怎么调用文章随机段落
  • wordpress自动更新
  • python中aiohttp库如何理解
  • mysql常用命令汇总
  • 个人独资企业法主要内容
  • 个人所得税数据怎么导入新电脑
  • 银行转账付款会计分录
  • 预计净残值影响营业利润吗
  • 企业所得税会计利润
  • 承兑汇票大回头是什么意思
  • 找社保代理公司需要提供什么资料
  • 发放职工薪酬计入什么科目
  • 收到预付货款用什么凭证
  • 其他综合收益要转入投资收益吗
  • 一般纳税人免税额度
  • 营业外支出可以抵扣进项税吗
  • 企业增资还需要增资账户么
  • win2000注册表
  • 微软推出copilotpro订阅
  • win7更改win10系统要怎么更改
  • win81with update
  • linux设置界面
  • rhel6提供5种基本的安装方式
  • linux中文件权限读写执行的三种标志符号依次是
  • python爬虫入门教程
  • jQuery的extend方法【三种】
  • 基于贪心算法
  • javascript类的继承
  • 批处理 修改文件名
  • unity方法大全
  • unity优化gc
  • 深入理解新发展理念
  • 国家税务局浙江省电子税务局新版
  • 深圳买新房契税怎么收
  • 增值税申报表如何填报
  • 电脑多窗口同步操作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设