位置: 编程技术 - 正文

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

  • 节能服务公司可以做什么
  • 一般纳税人的税收优惠政策
  • 简易征收适用哪条法律
  • 固定资产无法使用不能带来经济利益是否需计提租金
  • 跨区税源登记是指
  • 红字使用禁忌
  • 固定资产盘盈可计入
  • 企业接到税务稽查局电话
  • 为什么利润表的财务费用与利息费用逻辑不对
  • 企业为一般纳税人税率多少
  • 主营业务成本没有结转怎么办
  • 海关专用缴款书怎么认证?
  • 电商公司购买拍照违法吗
  • 纳税人指什么意思
  • 先收钱后开票怎么做分录
  • 支付网银年费计入什么科目
  • 工会经费怎么申报,多久报一次
  • 增值税专票和普票的区别税率
  • linux tr
  • 清算期间会计科目
  • php课堂笔记
  • “网络爬虫”
  • 米尔福德试车场
  • 采用定额法计算产品成本,其程序如何?
  • 出口企业要缴纳印花税吗
  • 小程序制作平台
  • win11的截屏
  • 雷达信号pri
  • c罗my eyes never lie
  • JavaScript charCodeAt() 方法
  • 员工安全培训费可以计入安全费用吗
  • 企业可以收付实现制记账吗
  • 节假日加班工资是几倍
  • 纳税人提供技术开发服务
  • 以固定资产抵债发生的固定资产
  • 驱动开发做得长久吗
  • phpcms使用教程
  • php注册系统
  • 发票种类8种分别是
  • 小规模纳税人结转增值税的账务处理
  • 2020新个税申报流程
  • 投资性房地产租金
  • 以前年度费用未入账,现可以入账吗?
  • 小规模减免的附加税怎么做账
  • 员工欠薪怎么办
  • 公司临时工的车可以买吗
  • 补助资金如何做账
  • 企业亏损净资产降低吗
  • 外购材料并提供建筑服务
  • 取得投资款缴纳企业所得税吗
  • 结转费用时财务费用为负
  • 销售费用和管理费用的税前扣除
  • 收到银联代收短信
  • 留存收益资本成本公式
  • 土地的入账科目
  • 滞纳金的收取依据
  • 软件测试取费标准
  • 客户到我公司签字怎么说
  • 投资性房地产是固定资产吗
  • 未分配利润太大了怎么处理
  • 企业年初借的
  • 虚拟机增加磁盘选择物理磁盘分区
  • win8.1 下载
  • win7第三方更新
  • win10打开小娜
  • linux添加用户命令并添加管理员
  • win8怎么系统重装系统
  • linuxwho
  • linux开发android好处
  • cocos2dx schedule
  • unity获取组件的方法
  • kindeditor获取内容
  • python的入门教程
  • unity strangeioc
  • shell中for循环如何用sed
  • javascript定律
  • 个人土地建房
  • 查册证明怎么自动生成
  • 查询完毕
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设