位置: 编程技术 - 正文

PHP控制反转(IOC)和依赖注入(DI)(php反转字符串方法)

编辑:rootadmin

推荐整理分享PHP控制反转(IOC)和依赖注入(DI)(php反转字符串方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php控制语句,php反转数组,php 反代,php控制反转和依赖注入,php控制语句,php反转链表,php控制反转和依赖注入,php 控制反转,内容如对您有帮助,希望把文章链接给更多的朋友!

先看一个例子:

上面代码,我们很容易理解一句话:

A类依赖B类和C类

也就是说,如果今后开发过程中,要对B类或者C类修改,一旦涉及函数改名,函数参数数量变动,甚至整个类结构的调整,我们也要对A类做出相应的调整,A类的独立性丧失了,这在开发过程中是很不方便的,也就是我们说的“牵一发动全身”,如果两个类是两个人分别写的,矛盾往往就在这个时候产生了。。。

万一真的要改动B类和C类,有没有办法,可以不去改动或者尽量少改动A类的代码呢?这里要用到控制反转。

高层模块不应该依赖于底层模块,两个都应该依赖抽象。

控制反转(IOC)是一种思想,依赖注入(DI)是实施这种思想的方法。

第一种方法叫做:构造器注入(这种方法也不推荐用,但比不用要好)

客户端类这样写:

PHP控制反转(IOC)和依赖注入(DI)(php反转字符串方法)

A类的构造器依赖B类和C类,通过构造器的参数传入,至少实现了一点,就是B类对象b和C类对象c的创建都移至了A类外,所以一旦B类和C类发生改动,A类无需做修改,只要在client类里改就可以了

假如有一天,我们需要扩充B类,做两个B类的子类

也很简单,客户端类这么写:

所以A类是不用关心B类到底有哪些个子类的,只要在客户端类关心就可以了。

第二种方法叫做:工厂模式注入(推荐使用)

我们A类代码改为:

其实已经解耦了一小部分,至少如果B类和C类的构造函数要是发生变化,比如修改函数参数等,我们只需要改Factory类就可以了。

抽象不应该依赖于细节,细节应该依赖于抽象。

把B类和C类中的方法再抽象出来,做一个接口

这样,A类中的b变量和b变量和c变量就不再是一个具体的变量了,而是一个抽象类型的变量,不到运行那一刻,不知道他们的Method方式是怎么实现的。

总结几点:

1.我们把A类中的B类对象和C类对象的创建移至A类外

2.原本A类依赖B类和C类,现在变成了A依赖Factory,Factory依赖B和C。

标签: php反转字符串方法

本文链接地址:https://www.jiuchutong.com/biancheng/293435.html 转载请保留说明!

上一篇:Thinkphp结合ajaxFileUpload实现异步图片传输示例(thinkphp django)

下一篇:PHP解耦的三重境界(浅谈服务容器)(js解耦)

  • 非居民个人利息所得个税税率
  • 非营利组织免税资格认定申请表
  • 免税农产品发票开具时税率怎么选
  • 无形资产计提折旧是当月还是次月
  • 个体工商户经营范围查询
  • 无形资产减值是否可以转回
  • 社保逾期滞纳金可以免除吗?
  • 供应商货款打折分录
  • 发票抵扣联做进项税入账处理是怎样的?
  • 进项税已认证未入账如何处理
  • 城建税本月计提下月缴纳怎么算
  • 增值税申报税额填错了怎么进行填
  • etc预付卡发票能不能报销
  • 印花税的滞纳金怎么计算
  • 装饰工程收入属于劳务收入吗
  • 员工因公负伤期间公司怎么开工资
  • 汇算清缴需要补税
  • 企业所得税可以退税吗
  • 房租现金流量表选哪项比较合适
  • 域名注册费用的会计分录
  • 发票和款未付可以抵扣吗
  • 企业研发活动中心职责
  • 解决脱发的8个方法
  • 外贸出口企业退税计算
  • 腾讯电脑管家怎么修复dll
  • 车船税的会计分录怎么写
  • 天猫收取的三大费用
  • PHP:oci_get_implicit_resultset()的用法_Oracle函数
  • 最贵的苹果4
  • php在线阅读器源代码
  • vue如何预加载图片
  • zend framework手册
  • php7.0新特性
  • thinkphp6项目
  • php操作mysql数据库
  • chrome浏览器快捷方式
  • GCN经典论文笔记:Semi-Supervised Classification with Graph Convolutional Networks
  • 代销手续费的税率
  • 建筑行业预交增值税税率是多少
  • antd pro v5
  • 分享帝国cms选取什么
  • 流动资产比例大说明什么
  • 生产企业生产车间人员密度是多少
  • 总分类账户余额表怎么做账
  • 印花税的征税对象和计税依据
  • 贸易公司平价销售怎么样
  • 一般贸易出口报关的详细流程案例
  • 资本化支出计入什么科目
  • 公司银行开户费用怎么报销
  • 贷款收取服务费
  • 其他应付款的有
  • 公户网银转账操作流程
  • 根据《增值税暂行条例》的规定,适用9
  • Sql Server datetime问题
  • mysql主从复制原理以及架构
  • solaris newfs
  • solaris 10安装
  • xp安装声卡驱动
  • WinXP创建一键静音快捷键(在喇叭消失的情况下实用)
  • linux sed-i
  • centos8安装rpm包
  • keyword是啥
  • grep的结果 再次查找
  • perl怎么用
  • cocos2048
  • unity集训
  • 深度缓冲
  • 直接利用外资
  • shell for awk
  • bat查看ip地址和mac地址
  • jquery动态生成div
  • awk入门
  • python的设置
  • 安卓解析xml的几种方式
  • python的for函数
  • 深圳纳税信息查询
  • 财税专家刘杨简历
  • 德清社保局固定电话多少
  • 什么是征收率什么是税率
  • 成都市地方税务局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设