位置: 编程技术 - 正文

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

  • 年度企业所得税申报时间
  • 土地价款抵扣增值税怎么做账
  • 出租房屋收取的水电费如何记账
  • 税款状态已缴款未入库
  • 境内公司取得境外收入
  • 企业跨年补开发票
  • 企业所得税前扣除是啥意思
  • 期间费用如何设置项目核算
  • 消费税申报流程税务实训平台
  • 公司注册前发生费用没有发票怎么办
  • 补贴收入计入哪个科目
  • 母子公司之间的管理费可以税前扣除吗
  • 原材料暂估分录
  • 个人代开普通发票需要出税费吗?
  • 公司修理电脑属于什么费用
  • 影响固定资产折旧的有
  • 以存货对外投资,现金流量表
  • 工程业务提成协议合法吗
  • 民间非营利组织会计制度最新版
  • 即征即退的增值税需要缴纳企业所得税吗
  • 纳税申报表怎么打印
  • pssvc.exe - pssvc是什么进程 有什么用
  • 怎么看iPhone电池温度
  • 华为mate x3最新价格
  • 存货报废会计分录例题
  • 羊肚菌的功效和价格
  • 电脑avc是什么意思
  • 小微企业减免附加税政策
  • 雪花 (© TothGaborGyula/Getty Images Plus)
  • 购入固定资产后什么时候开始计提折旧
  • 进项税加计抵扣10%和15%
  • chrome插件api
  • 餐饮发票可以计入福利费吗
  • 闭包 python
  • 金蝶销售明细查不出来
  • 劳务公司需要缴纳社保吗
  • mysql的简单操作
  • 不确认递延所得税资产的特殊情况举例
  • 分公司转款总公司总公司怎样会计处理
  • 增值税的税目是什么意思
  • 酌量性固定成本是指
  • 用友怎么取消对账结果
  • 销售退回怎么写分录
  • 装修款收不回怎么办
  • 本年利润和利润分配属于什么账户
  • 哪些项目的进项不含税
  • 财务费用包含了利息费用吗
  • 收据可以入账的情况
  • 残保金如何做账务处理
  • 防伪税控技术维护费普通发票怎么申报
  • 附加税多交了怎么抵税
  • 收到法人的借款怎样写摘要
  • 应收账款周转率越高越好吗
  • 股东打到公帐上怎么做账
  • 公司改名后发票怎么开
  • 汽车修理厂利润
  • 原始凭证填制要点在原始凭证上书写阿拉伯数字正确的有
  • 收到政策性搬迁短信
  • 房地产开发成本和房地产开发产品
  • 看过有趣的童话书,简单介绍下
  • MySql 5.6.14 winx64配置方法(免安装版)
  • mysql版本信息
  • mysql 5.7.12 winx64手动安装教程
  • windows主进程rundll32总是用麦克风
  • fedora系统怎么安装
  • linux系统讲解
  • pps是什么文件
  • winxp能玩啥大型游戏
  • 微软windows10正版
  • python音频文件读写
  • 【Cocso2d-x Lua笔记五】quick中的display
  • 如何自定义控件
  • Node.js中的全局对象有
  • android广播接收器数量达到1000
  • jQuery ready()和onload的加载耗时分析
  • unity接收数据
  • Unity3D的iTween
  • javascript教程
  • 国家税务局开票软件下载
  • 云票助手怎么查看开票限额
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设