首页 后端开发 php教程 什么是依赖注入?

什么是依赖注入?

Oct 25, 2017 pm 01:16 PM
什么 依赖 注入

依赖倒置(DIP):DIP是一种设计思想,在传统的软件设计中,上层代码依赖下层,当下层代码发生改变的时候,上层代码也要发生改变,代码不易维护,而DIP设计思想要求定义定义上层接口,下层实现这个接口,从而降低耦合度。

控制反转(IOC):IOC是DIP的一种具体思路,将上层所依赖的下层交由第三方实现。也就是说,是在A类中主动去获所需要的外部资源C,这种情况被称为正向的。那么什么是反向呢?就是A类不再主去获取C,而是被动等待,等待IoC/DI的容器获取一个C的实例,然后反向的注入到A类中。

依赖注入(DI):DI是IOC的一种设计模式,将类以来依赖另一个类的实例化移到类的外部实现。

依赖注入是实现:

1.定义接口或者抽象类(这是一个发邮件例子)


interface Mail{    public function send();
}
登录后复制

2.不同类型的发送实现该接口


class Email implements Mail()
{    public function send()
    {        //发送Email    }
}
登录后复制


class  SmsMail implements Mail()
{    public function send()
    {        //发送短信    }
}
登录后复制

3.


   __construct( ->_mailObj =  
        ->_mailObj->send();
登录后复制


<span style="color: #008000"><br/>$reg = new Register();<br/>$emailObj = new Email();<br/>$smsObj = new SmsMail();<br/><br/>$reg->doRegister($emailObj);//使用email发送<br/>$reg->doRegister($smsObj);//使用短信发送<br/></span>
登录后复制

以上是什么是依赖注入? 的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1673
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
如何在技嘉主板上设置键盘启动功能 (技嘉主板启用键盘开机方式) 如何在技嘉主板上设置键盘启动功能 (技嘉主板启用键盘开机方式) Dec 31, 2023 pm 05:15 PM

技嘉的主板怎么设置键盘开机首先,要支持键盘开机,一定是PS2键盘!!设置步骤如下:第一步:开机按Del或者F2进入bios,到bios的Advanced(高级)模式普通主板默认进入主板的EZ(简易)模式,需要按F7切换到高级模式,ROG系列主板默认进入bios的高级模式(我们用简体中文来示范)第二步:选择到——【高级】——【高级电源管理(APM)】第三步:找到选项【由PS2键盘唤醒】第四步:这个选项默认是Disabled(关闭)的,下拉之后可以看到三种不同的设置选择,分别是按【空格键】开机、按组

i7 3770的最佳搭配显卡是什么? i7 3770的最佳搭配显卡是什么? Dec 29, 2023 am 09:12 AM

酷睿i73770配什么显卡好啊RTX3070是一款非常强大的显卡,它具有出色的性能和先进的技术。无论是玩游戏、渲染图形还是进行机器学习,RTX3070都能轻松应对。它采用了NVIDIA的Ampere架构,拥有5888个CUDA核心和8GB的GDDR6内存,能够提供流畅的游戏体验和高品质的图形效果。RTX3070还支持光线追踪技术,能够呈现逼真的光影效果。总之,RTX3070是一款强大而先进的显卡,适合那些追求高性能和高品质的用户使用。RTX3070是一款NVIDIA系列的显卡。采用第2代NVID

选择适合音乐生的平板电脑 选择适合音乐生的平板电脑 Jan 10, 2024 pm 10:09 PM

音乐生用什么平板合适华为的ipad中的12.9寸音响是一款非常好的产品。它配备了四个扬声器,音效非常出色。而且,它属于pro系列,相比其他款式稍微更好一些。总体来说,ipadpro是一款非常优秀的产品。这款mini4手机的喇叭声音较小,效果一般般。不能用来外放音乐,还是需要依靠耳机来享受音乐。耳机音质好的会有稍微好一些的效果,而便宜的三四十元的耳机就无法满足要求了。钢琴电子谱用什么平板如果您想购买一台10寸以上的iPad,我推荐使用两款应用程序,分别是Henle和Piascore。Henle提供

CentOS安装gnuplot及CentOS安装向日葵缺少依赖 CentOS安装gnuplot及CentOS安装向日葵缺少依赖 Feb 13, 2024 pm 11:39 PM

LINUX是一种广泛使用的操作系统,它具有高度的可定制性和稳定性,CentOS是基于RedHatEnterpriseLinux(RHEL)源代码构建的一个免费开源的操作系统,被广泛用于服务器和桌面环境,在CentOS上安装软件包是日常使用中常见的任务之一,本文将介绍如何在CentOS上安装gnuplot和解决向日葵软件缺少依赖的问题。Gnuplot是一款功能强大的绘图工具,它可以生成各种类型的图表,包括二维和三维的数据可视化,要在CentOS上安装gnuplot,您可以按照以下步骤进行操作:1.

ECharts是否依赖于jQuery?深入分析 ECharts是否依赖于jQuery?深入分析 Feb 27, 2024 am 08:39 AM

ECharts是否需要依赖jQuery?详细解读,需要具体代码示例ECharts是一个优秀的数据可视化库,提供了丰富的图表类型和交互功能,广泛应用于Web开发中。在使用ECharts时,很多人会有一个疑问:ECharts是否需要依赖jQuery呢?本文将对此进行详细解读,并给出具体的代码示例。首先,要明确的是,ECharts本身并不依赖jQuery,它是一个

选择适合您的RX580的驱动版本 选择适合您的RX580的驱动版本 Dec 29, 2023 pm 05:34 PM

rx5808g安装什么驱动好20.5.1和20.4.2WHQL是指软件或驱动程序的版本号。这些版本号通常用于标识软件或驱动程序的更新或修复。在计算机领域中,WHQL代表Windows硬件质量实验室,它是微软公司用来测试和验证硬件和驱动程序的合规性和稳定性的机构。因此,20.5.1和20.4.2WHQL表示这些软件或驱动程序已经通过了微软的测试和验证,可以安全地使用在Windows操作系统中。AMDrx580显卡相对稳定驱动20.5.1和20.4.2WHQL是指软件或驱动程序的版本号。这些版本号通

cortana的功能是什么? cortana的功能是什么? Jan 15, 2024 pm 10:15 PM

在使用微软公司开发的Windows10操作系统过程中,不少使用者对于其中名为Cortana的全新技术感到好奇和疑惑,Cortana在中文语境中的正式称呼为“小娜”,实际上是Windows10系统内置的一款人工智能(AIassistant)服务程序cortana小娜常见问题及解决方法怎么开启小娜没反应解决步骤不支持中国解决方法搜索框放到cortana里的方法cortana是什么软件答:"Cortana小娜"是由微软公司精心打造的一款云端平台个人智能助手,具备登陆与非登陆两种使用模式。当您处于登录状

i34150搭配1G独显适合玩哪些游戏(i34150适用于哪些游戏) i34150搭配1G独显适合玩哪些游戏(i34150适用于哪些游戏) Jan 05, 2024 pm 08:24 PM

i34150搭配1G独显能玩哪些游戏能玩lol等小游戏。GTX750和GTX750TI是非常合适的显卡选择。如果只是玩一些小游戏或者不玩游戏,建议使用i34150的集成显卡就可以了。一般来说,显卡和处理器的搭配差价并不是很大,所以选择合理的搭配是很重要的。如果需要2G显存,推荐选择GTX750TI;如果只需要1G显存,直接选择GTX750即可。GTX750TI可以看作是GTX750的增强版本,具有超频功能。i34150可以搭配什么显卡根据需求,如果你打算玩单机游戏,建议你考虑更换显卡。你可以选择

See all articles