位置: 编程技术 - 正文

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

  • 税收负担影响企业的利润吗
  • 小规模纳税人做账要做增值税吗
  • 收到生育险报销会计怎么写摘要呢
  • 技术咨询服务开什么发票
  • 农产品增值税抵扣政策文件
  • 收到的增值税
  • 资产减值准备的税务处理
  • 所得税预缴申报表中营业成本怎么计算
  • 办理企业所得税汇算清缴的期限是
  • 员工劳动保险赔多少钱
  • 为别人开发票先收的税金怎么入帐?
  • 公司之间转让股权,两家股东一样
  • 开增值税发票开户行怎么填?
  • 增值税税负率怎么算
  • 小型微利企业所得税优惠政策
  • 生产型企业税种有哪些
  • 处置固定资产增值税税率
  • 关于增值税普通发票情况的函范文
  • 税务局工会经费新举措
  • 上年多计提附加税调整了,今年怎么调整
  • 收到保险返利计入什么
  • 差额征税做账分录
  • 原始凭证与记账凭证的填制实验报告
  • 运输公司租赁车辆怎么做账
  • Windows10如何修复引导
  • 收到一张增值税红冲发票
  • 财务会计制度
  • 房地产销售代理是什么意思
  • 汇算清缴后补缴企业所得税账务处理
  • 订金账务处理
  • 原始凭证容易出现错误的原因
  • php文字转语音源码
  • 前端批量下载图片
  • 商品流通企业库存商品的核算方法主要有
  • 杭州西湖古风
  • 以前年度损益调整在利润表中怎么填
  • php实现数据库查询
  • ps如何打圈内环形文字怎么调间距
  • 公司租赁个人车辆账务处理
  • 固定资产清理如何申报增值税
  • sql报数字溢出
  • 简述银行存款对应的业务
  • mysql中数据类型主要分为哪四种
  • 吊车租赁有限公司
  • 公司对公账户转给个人
  • 房地产开发公司注册资金要求
  • 出差的住宿费能抵扣吗
  • 出租房屋损坏赔偿
  • 应补税额是要交钱
  • 未开票收入是否代表可以不开发票
  • 税务报表工会经费是按什么交了
  • 财务预算怎么做模板
  • 销售怎么写啊
  • sqlserver高级教程
  • win 10怎么更换系统
  • cvi linux
  • win7修改系统版本
  • linux crontab -e
  • ubuntu x
  • mac用chrome
  • windowssystem32configsystem 损坏
  • win7禁用开机启动服务
  • win7旗舰版提示不是正版
  • handle thread
  • shell(bash)下“time” 命令的输出详解
  • 批处理命令在哪个菜单中
  • 拖拽js实现
  • 安卓icon图标
  • 变量js
  • 批处理 修改文件名
  • jquery fadein不起作用
  • python数据操作
  • js实现表格动态合并单元格
  • 税务局三级主办是副科吗
  • 江苏省国家税务局总局官网
  • 审计局查什么内容
  • 税控发票开票软件金税盘版口令怎么解锁?
  • 一般纳税人预缴税款怎么计算
  • 威海行风热线实时收听
  • 上海如何用电子医保卡
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设