位置: 编程技术 - 正文

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

  • 税务人员岗位有哪些
  • 为什么缴纳税
  • 个人所得税申报退税的条件
  • 发票作废后对方不退回抵扣联怎么办
  • 办理契税需要的户口本复印件可以吗
  • 应付账款坏账了怎么处理
  • 来料加工生产成本账务处理
  • 土地增值税申报流程
  • 个人独资企业注册流程
  • 文化事业建设费税收优惠政策2023
  • 在建投资性物业管理办法
  • 长期股权抵消分录
  • 扶贫费用事业单位账务处理怎么做?
  • 堤围防护费什么时候停止征收
  • 有留抵税额的会计处理
  • 代扣代缴城建税可以享受六税两费
  • 不应抵扣的进项税抵扣了怎么办
  • 免息分期怎么还款
  • 营改增后银行增值税如何缴纳
  • 行政诉讼的适用情况
  • 影响所得税金额的因素有哪些
  • 税金及附加里面有印花税吗
  • 总公司要合并分公司报表吗
  • 冲红发票金额大怎么办
  • 固定资产预计净残值最后怎么处理
  • 第三方派遣劳务不续签补偿金哪边出
  • 建筑行业当月无收入成本如何结转?
  • caxa电子图板2007教程
  • h3c路由配置教程
  • 如何查询公司有没有报个税
  • 代发工资要缴纳社保吗
  • 2021激活windows10
  • 爱荷华州的首府
  • 代金券消费怎么做分录
  • 圆顶亭效果图
  • 专利年费的滞纳金
  • yii框架怎么样
  • 发生的计提费用没有发生怎么办
  • 资产负债表申报怎么填
  • 增值税上期留抵税额
  • php输出对象
  • 机票报账行程单怎么打印
  • pytorch自动编码器
  • js中...的用法
  • opencv模板匹配原理
  • 人工智能 深度
  • nmap的命令
  • bind函数错误
  • pwd命令的用法
  • 命令行延时
  • 小规模纳税人进项税额怎么处理
  • 印花税没交会怎么样
  • 差旅费补贴要交个人所得税文件
  • sqlserver数据库锁表如何解锁
  • 固定收益票据
  • 开具免税的发票,"税率"栏如何填开?
  • 冲销上个月成本的会计分录
  • 什么是销项税额转出
  • 茶叶企业所得税减免
  • 企业会计人员审计程序
  • 关于事业支出期末的结转
  • 承兑汇票贴现计算器下载
  • 现金流量表格式有几种
  • 分页式存储管理中页的大小是可以不相等的
  • 苹果15手机价格和图片颜色
  • win8键盘f1到f12取消按fn
  • centos7.4修改主机名
  • 神墓凌云
  • win7系统鼠标右键没有压缩文件功能
  • python如何配置
  • python基础总结
  • 用javascript写简单网页
  • javascript cookies
  • unity官方插件
  • javascript函数
  • JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
  • 安徽省国家税务总局电子税务局
  • 税率是从什么时候有17%改为13%的呢
  • 陕西省电力app
  • 国税和地税在一起吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设