位置: 编程技术 - 正文

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

  • 工衣工帽清洗费税率是多少
  • 小规模纳税人附加税是几个点
  • 房地产企业的会计核算
  • 主营业务成本大于生产成本
  • 珠宝首饰可以开发票吗
  • 项目差旅费能计入项目费用吗
  • 购销合同印花税怎么算
  • 受托代销商品和受托代销商品款是什么科目
  • 收到加工劳务发票怎么做
  • 多付车款退回怎么做账
  • 换件维修的部件什么意思
  • 银行代扣水电费要手续费吗
  • 自产货物用于在建工程要交增值税吗
  • 取得运输部门开具的增值税专用发票
  • 退休人员是否还继续享受社保
  • 房地产企业工程款支付流程
  • 增值税发票不小心撕坏了怎么办
  • 残疾人保障金什么时候发放
  • 税务局备案的企业是什么
  • 小规模纳税人季度超过30万怎么纳税
  • 金蝶标准版利润表季度怎么选
  • 企业开业装修费用分录
  • 结转完工产品成本的计算
  • bios设置的完整说法
  • 苹果电脑怎么截屏ctrl加什么
  • centos7安装部署cacti教程
  • mac如何修改图片像素大小
  • win7文件打开方式选错了如何恢复
  • 股东分红的会计科目怎么做
  • 工厂没有生产许可证可以生产吗
  • 打开浏览器时间长
  • 上月开的发票会计漏做帐,本月应如何补做账?
  • 招标公司在招标过程中的注意事项
  • mac升级系统还剩不到一分钟
  • 电脑密码解除步数怎么弄
  • 贷款的账务处理
  • 前端开发csdn
  • php date format
  • 森佩塑胶
  • php 自动化测试
  • 长期待摊费用的会计分录
  • 前端工程搭建
  • 汽车检测没过收钱不
  • 结转出口退税分录
  • 销售产品的包装费
  • 协议、合同
  • 收客户样品费怎么做分录
  • 技术服务收入属于什么收入
  • 转出未交增值税最终怎么转平
  • 保洁公司保洁服务税率
  • 小规模纳税人有几种税率
  • 现金折扣方式销售货物不得从计税销售额中扣减折扣额
  • 春节重要通知发放工资
  • 缴纳税款滞纳金应计入哪个科目
  • 特殊销售方式下销售额的确定
  • 出租固定资产的折旧计入哪个科目
  • 展位费按多少税率
  • 电子发票报销需要在背后签名吗?
  • 期末存货采用成本与什么孰低法计价
  • 投资回报怎么写
  • mac怎么保存网页到桌面
  • windows软件包2012能删吗
  • win7怎么添加此电脑
  • win10一天更新几次
  • Win10预览版怎么变回正式版
  • win10控制面板中没有防火墙
  • windows10更新最新版本
  • 简述linux系统有什么优点
  • win10 自带
  • 怎么更换win系统
  • cocos creator js ts
  • ext.grid.gridpanel
  • Node.js中的construct构造函数
  • node.js+express
  • shell脚本wc
  • python怎么将列表转换成数字
  • python二分查找非递归
  • 四川纳税互动平台app
  • 金银首饰以旧换新业务按销售方实际
  • 十大经济
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设