位置: 编程技术 - 正文

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

  • 期末未缴税额为负数怎么调整
  • 企业购入免税农产品
  • 以前年度费用退回怎么做账
  • 员工工作服怎么做分录
  • 特许权使用费是什么意思
  • 邮局可以开发票吗 税点多少
  • 活动板房怎么开发票
  • 亏损企业要做业务处理吗
  • 有限合伙企业转让投资股权
  • 建筑公司现金日记账怎么填写
  • 货物赔偿款会计分录
  • 计入固定资产的土地
  • 银行手续费要纳进去吗
  • 从境外取得的佣金
  • 营改增后挂靠开票作收入吗?
  • 园林绿化工程的分项工程有几个
  • 二手房有不动产统一发票吗
  • 哪些出口业务不能做
  • 销售商品货款已预收
  • 金融企业贷款损失税前扣除
  • 小规模季报都报哪些税种
  • 评标费由谁支付
  • 一般纳税人附加税费减免政策
  • 个体工商户经营范围分类目录
  • 交易性金融资产是什么意思
  • php url编码转换
  • 总包和分包是什么关系
  • 财务费用明细科目有哪些
  • 夏威夷火山国家公园
  • (二) Vue3 + Element-Plus 实现动态菜单栏
  • 应付债券利息费用
  • 对于小型微利企业的建议
  • 一般纳税人简易计税
  • php静态页面生成
  • 初级职称到中级职称需要上继续教育课吗
  • 偿还应付账款会使得资产报酬率增加吗
  • react.fc
  • object.assign(this.$data, this.$options.data())
  • 成品油发票如何下载库存
  • 企业所得税没有交
  • 织梦cms不更新了吗
  • mysql常用表
  • 增值税发票跨月可以作废吗
  • 企业所得税弥补亏损怎么弥补
  • 企业所得税实施条例第22条
  • 用友软件数据导出
  • 小规模纳税人购进税控收款机
  • 一般纳税人购买汽车会计分录
  • 不动产发票开具规则
  • 行政单位年终奖的相关发放规定
  • 应付账款增值税如何挂账
  • 坏账准备的会计分录例题
  • 销售货物没开票是不是不交税
  • 收到保险公司赔款
  • 为什么要依法管理
  • mysql 5.7.11 winx64安装配置方法图文教程
  • mysql 去除重复查询结果
  • sql %和_
  • 如何开启windows防火墙
  • linux网络协议栈内核分析
  • 电脑怎么装双系统win10和linux
  • centos查看目录空间大小
  • 如何提升windows版本
  • 快速备份mysql数据库
  • js设置导航固定
  • 安卓app开源项目
  • 全面理解和准确把握新时代党的建设总要求心得体会
  • JavaScript中关于模板字符串
  • python制作爬虫教程
  • 噩梦 gd
  • unity3d人物模型
  • easyui treegrid重新加载
  • ukey开发票系统怎么升级?
  • 房地产企业预缴税款最新规定
  • 浙江电子税务局移动端
  • 济南税务局电话是多少
  • 国家税务总局23号文件
  • 深圳拖欠工资举报网站
  • 顺德中学校徽图片大全1998年
  • 怎样查询上一年的国税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设