位置: 编程技术 - 正文

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

  • 企业税前扣除凭证包括增值税发票吗
  • 环保税计税依据怎么算
  • 预缴所得税的计税依据
  • 电子承兑被拒付(可拒付追索)
  • 具备什么条件的土地可以开发
  • 实收资本未认缴资本还用填写吗
  • 事业单位库存物品
  • 银行手续费要纳进去吗
  • 企业固定资产出租取得的收入属于
  • 代开的专票作废了怎么做账?
  • 出口退税申报显示疑点跳过可以转正式申报吗
  • 企业所得税的纳税人和负税人一致吗
  • 以前年度少计收入 会计怎么处理
  • 两家公司合租一个房子
  • 代收代缴水电费能开发票吗
  • 企业所得税季度预缴可以弥补以前年度亏损吗
  • 进口增值税发票怎么认证
  • 建账时选择什么会计制度
  • 固定资产不入账的后果
  • win11闪屏问题
  • 兼职人员工资如何扣税
  • windows 10月更新
  • 展位费一般多少钱
  • PHP:rawurldecode()的用法_url函数
  • 总结关于现金清查的会计核算分录
  • 返还保证金的法律依据
  • php开启pdo
  • 税收筹划的原则包括
  • 混合销售会计处理
  • php-mysql安装
  • 企业实行股权激励的作用
  • 交易性金融资产的账务处理
  • php忘记密码功能
  • 房地产预缴所得税计算公式
  • 什么叫含税和未含税区别
  • 营业额增长率公式
  • 小规模企业应交税费
  • 什么是完税证明?完税证明丢了怎么办公司
  • 个人如何办理营业执照年检
  • 汇算清缴里的账户是什么
  • 稳岗返还资金最新账务处理
  • 商家的促销
  • 贴现法年末偿还金额
  • 权益净利率如何分析
  • 公司给员工买房子如何做账
  • 企业支付境外佣金要交税吗?
  • 网络发票管理办法细则
  • 房租增值税专用发票几个点
  • 税法规定固定资产最低折旧年限
  • 公司不做账会怎样?
  • 建账时应考虑的问题包括下列哪三项
  • mysql union unionall
  • win7系统双击不能打开我的电脑
  • ARP欺骗攻击原理
  • windows怎么查
  • win10预览版好吗
  • windows8怎么更新到最新版本
  • linux CentOS/redhat 6.5 LVM分区使用详解
  • win101607升级1909
  • osx 10.9
  • windows2008无法识别usb
  • linux filezilla使用教程
  • jqueryui easyui
  • python 读取数据库
  • jquery插件使用教程
  • Android-SQLite商业化数据库操作
  • 用python定义一个函数
  • python打包成deb
  • js函数的声明方式
  • python直接访问私有属性的简单方法
  • 国家税务总局,河北省税务局
  • 个体户增值税申报比对不符怎么处理
  • 进一步深造是什么意思
  • 南京市国家税务局溧水分局
  • 江苏房产税如何计算公式
  • 江苏国税电子国税局
  • 工会经费支出审批制度
  • 销货清单表格的制作方法
  • 自然人电子税务局
  • 税控发票打印发票流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设