位置: 编程技术 - 正文

PHP解耦的三重境界(浅谈服务容器)(js解耦)

发布时间:2024-01-12

推荐整理分享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计算时间)

  • 应交增值税一般纳税人的账怎么做
  • 企业产生的所得税计入
  • 所得税汇算清缴账务处理
  • 非营利机构注册要求
  • 个人所得税本期免税收入是指什么
  • 收回多缴税金会计分录
  • 怎么处理未抵扣增值税形成的留抵税额?
  • 增值税月末结转摘要写什么
  • 负债类会计科目表
  • 取得虚开增值税专票如何税务处理
  • 应发工资包含扣款吗
  • 应收账款减值后可以转回吗
  • 免抵退分录怎么做
  • 什么是个体工商户业主
  • 非征期不能抄报
  • 所得税报表怎么申报
  • 管理费用怎么记忆
  • 扣缴上月税费会计分录
  • 把股份转给别人怎么处理
  • 国税申报纳税调整项目怎么填的?
  • 会员卡系统多少钱一套
  • 减征资源税中是否包含水资源税?
  • cpu天梯图2022最新排行榜
  • 在建工程人工费计入什么科目
  • 盘盈的固定资产怎么做账务处理
  • 手动ghost还原硬盘
  • php curl模块
  • 苹果手机把旧手机的照片传到新手机
  • 收汇金额和出口金额差额大怎么办
  • php图片下载本地功能
  • 非金融机构从事贷款谁负责监管
  • php实现数据库创建题库
  • 服务业的增值税
  • 蓝桥杯第十四届模拟赛第三期
  • 律师事务所要交残保金吗
  • 支付版权费用账号是什么
  • 外包人员的餐费可以全部扣除吗
  • 公司银行账号注销需要什么资料
  • MySQL数据库存储引擎
  • mysql需要转义的特殊字符
  • 外经证开错作废要带些什么
  • 无形资产会产生递延所得税吗
  • 一般纳税人什么情况可以开3%的发票
  • 自行建造的固定资产达到预定可使用状态
  • 房地产老项目简易计税方法
  • 增值税专用发票几个点
  • 电子发票查询真伪
  • 企业应付职工薪酬的会计核算
  • 一次性加速折旧额怎么算
  • 成品油发票如何作废
  • 工厂加工费如何计算
  • 政府扶持资金的优缺点
  • 享受小微企业免征增值税政策
  • 长期借款涉及哪些账户
  • 收到国库退款
  • 相关损坏维修成本是什么
  • 福利费以后年度可以抵扣吗
  • 预付账款跨年处理分录
  • sqlserver
  • mysql数据库全量备份
  • mysql数据库主键怎么设置
  • 将哪一linux文件系统引入
  • macos 备份
  • 远程桌面的文件怎么无法复制到本地桌面
  • ExtJS 4.2 Grid组件单元格合并的方法
  • js中的
  • python输出unicode编码
  • jquery示例
  • linux 中的atq命令
  • ugy与ngy
  • js window.screen
  • javascript引用值
  • jquery iframe src
  • android ui自动化测试
  • 国家对高校食堂的最新管理规定
  • 个人所得税完税证明在哪里查询
  • 税收效应分析供求曲线
  • 销售车位需要交房产税吗
  • 营改增之前建筑业税率是多少
  • 小规模纳税人购买车辆可以抵扣税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号