位置: 编程技术 - 正文

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

  • 增值税留抵税额账务处理
  • 债券的利益
  • 其他权益工具影响哪些报表
  • 微信企业版支付
  • 利润表的营业成本包括哪些
  • 合伙人没有账目就说赔了合法吗
  • 建筑业会计科目工程结算
  • 摊销折旧是什么意思
  • 油费预付卡如何开发票
  • 月末在产品和产成品计算
  • 转账支票给员工转工资
  • 资产负债表期末余额怎么算
  • 如何填写增值税及附加税费申报表
  • 免税单位无租使用纳税单位土地
  • 以前纳税申报表在哪里查询
  • 新公司没业务怎么做账
  • 什么情况下税务会查账
  • 水电开发潜力
  • 企业的商誉会一直存在吗
  • 公司账户收到车险怎么做账
  • 对公支出没有发票计入什么科目
  • 公司转账不开票备注服务费怎么入账
  • 股东退股会计科目
  • 税务师如何办理入会
  • 残保金通过什么科目核算
  • 外观设计专利费减
  • php getheader
  • PHP:pcntl_getpriority()的用法_PCNTL函数
  • php中imagecreatefromjpeg
  • latex希腊字母斜体
  • php bi
  • thinkphp 部署
  • Yii2中使用asset压缩js,css文件的方法
  • 印花税怎么从账上取数
  • 开发项目完工后多久开工
  • 风险资本生存概率
  • db2入门教程
  • 为什么实收资本是贷方
  • 缴纳的税费怎么计算
  • sqlserver启动不起来
  • 补交所得税会计处理方法包括
  • 注册资本与实收资本是否一致
  • 跨年暂估成本如何冲销
  • 厂房出租没有开发票属于违法吗?
  • 资产已报废折旧怎么算
  • 小企业研发费用放在哪个科目
  • 股东之间资金往来
  • 所有者权益包括少数股东权益吗
  • 会计损益类科目有哪些,期末如何结转?
  • 医院体检收入计入什么科目
  • 融资租赁固定资产不属于筹资活动
  • 外来原始凭证丢了怎么办
  • sqlserver数据库怎么导出
  • mysqldump命令在哪里执行
  • solaris11.4安装教程
  • 魔方u怎么弄
  • slserv.exe - slserv进程是什么意思
  • Windows文件夹共享权限不足
  • win8系统搜索在哪里
  • centos7误删除怎么恢复
  • 华硕和联想笔记本电脑哪个好点
  • linux批量杀进程 awk
  • 怎么把系统从win10换成win7
  • Win7安全模式怎么切换到正常模式
  • 打开字符面板
  • 微软 系统设计
  • linux常用命令查询
  • mfc界面布局
  • 常见错误类型
  • javascript登录验证
  • js实例教程
  • css示范例子
  • perl命令
  • java调用curl命令
  • python进行爬虫
  • unity study
  • 猫的喵喵
  • jquery前端开发实战教程课后题答案
  • 江苏食品经营许可证企业端官网
  • 12366国税网上申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设