位置: 编程技术 - 正文

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

  • 税务专业是什么学位
  • 房地产耕地占用税实施细则
  • 零售行业会计核算方法
  • 充值费用优惠怎么取消
  • 溢价收购怎么做账
  • 发票进项转出账务怎么做
  • 一般存款账户可以办理现金缴存
  • 个人借款无法收回确认坏账账务处理
  • 营改增的增值税税率
  • 地方附加税
  • 个人房屋租赁税率2023年
  • 土地增值税四级税率表
  • 物流行业主营业务成本会计分录
  • 质量抽样检查
  • 政府采购 汽车
  • 个人缴付年金的扣除限额
  • 企业延期缴纳税款
  • 支付水电费如何记账
  • 小规模纳税人收到专票后如何处理
  • 存货跌价准备的分录
  • 建筑企业如何预缴企业所得税
  • 360safe删除不了怎么办
  • imac 5k屏幕参数
  • php preg_grep
  • 股东无偿转让股权
  • 工程价款结算的方式
  • php查询数据库语句
  • 营改增后土地增值税
  • gws.exe是啥
  • ReadTimeoutError: HTTPSConnectionPool(host=‘cdn-lfs.huggingface.co‘, port=443)
  • 酒店里用了收费的东西怎么算
  • 低值易耗品总账科目叫什么
  • 罂粟的花季
  • thinkphp开发框架
  • php实现多维数组输入
  • 账户维护费计入什么会计科目
  • php文件上传用什么请求方法
  • netbeans ide 8.1
  • css添加边框阴影 立体效果
  • 一般纳税人没有开票怎么申报增值税
  • 购货方享受现金流量吗
  • 利用python创建文件
  • 如何检查文件是否有毒
  • 发票开预付卡充值可以计入费用吗
  • 收到小微企业退税怎么做账
  • 个体户需要税务报道不
  • 银行每月贷款额度有多少
  • 对方给我们等额的钱
  • 必要报酬率怎么求
  • 增值税抵扣了,主要成本怎么算
  • 免税收入就是不征收收入,均属于税收优惠范畴
  • 购入的固定资产,其入账价值包括的内容有
  • 固定资产出售账面价值计入什么科目
  • 计提短期借款利息分录
  • 总包分包怎么区分
  • 会计基本前提包括会计主体货币计量资料完整和经济效益
  • 工业企业营业税率
  • sql server数据库中的null(空值)
  • mysql 常用
  • mysql5.5解压版安装教程
  • mysql密码怎么找回
  • mac截图清晰度设置方法
  • xp系统的启动快捷键
  • u盘安装ubuntu找不到硬盘
  • winxp系统占用c盘多少
  • mozilla是啥
  • 安装yum的命令
  • 背景透明度设置
  • python中requests小技巧
  • python3.9爬取网页教程
  • animate如何拖动图片
  • 福建省国家税务局网
  • 北京税务总局
  • 四川国税局发票查询
  • 电子税务局用户名和密码是什么
  • 房子办不了产权
  • 淘宝要补偿怎么回复
  • 蜀山区税务局网站首页
  • 吉林省税务局发票流向查询系统
  • 计算土地增值税时下列费用准予从收入总额中扣除的有
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设