什么是控制反转(IoC)?什么是依赖注入(DI)?两者关系如何 ?

本文介绍了IoC(控制反转)和DI(依赖注入)的概念。IoC是一种思想,由容器负责对象的创建和管理,实现从应用程序主动创建依赖对象到被动接收的反转。DI是IoC的另一种表述,强调在运行时,容器将依赖关系注入到组件中。两者本质上是同一概念,主要目的是降低耦合,提高代码的灵活性和可测试性。
摘要由CSDN通过智能技术生成

什么是控制反转(IoC)?什么是依赖注入(DI)?两者关系如何 ?

1. IoC是什么?
IoC(Inversion of Control) – 控制反转。它不是一种技术,而是一种思想。要理解什么是控制反转。那么我们就要理解“是谁控制谁呢,为什么是反转呢”。

  • 是谁控制谁:在传统的Java SE程序设计,我们要使用对象要在对象内通过new来创建,即应用程序主动创建依赖对象。而IoC是一个专门创建依赖对象的容器。即容器控制对象。
  • 为什么是反转:因为IoC帮我们创建并注入依赖对象,对象只是被动地接受依赖对象(传统的是在对象内通过new来主动地创建依赖对象),所以是反转。即从主动获取依赖对象到被动接受依赖对象的反转!

2. DI是什么?
DI(Dependency Injection) – 依赖注入。在程序运行期间,容器动态地将依赖关系注入到组件中。要更好地了解DI,我们需要理解以下几点:
1、谁依赖谁:应用程序依赖于IoC容器;
2、为什么依赖:应用程序需要IoC容器提供外部资源;
3、谁注入谁:IoC容器向应用程序注入;
4、注入什么:IoC向应用程序注入外部资源,数据等。

3. 两者什么关系?
IoC和DI其实是同一概念的不同描述。由于IoC(控制反转)不好了解,所以在2004年,Martin Fowler给出了一个新的名称:“依赖注入”。“依赖注入”可以让人们更好地关注到依赖对象和注入这两个重要的东西。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值