控制反转(Ioc)和依赖注入(DI)为什么说是是同一个概念的不同角度描述呢?

  1. DI(依赖注入)其实就是IOC的另外一种说法,DI是由Martin Fowler 在2004年初的一篇论文中首次提出的。他总结:

    控制的什么被反转了?就是:获得依赖对象的方式反转了。主动变被动。

  2. IoC和DI由什么关系呢?其实它们是同一个概念的不同角度描述由于控制反转概念比较含糊(可能只是理解为容器控制对象这一个层面,很难让人想到谁来维护对象关系),所以2004年大师级人物Martin Fowler又给出了一个新的名字:“依赖注入”,相对IoC 而言,“依赖注入”明确描述了“被注入对象依赖IoC容器配置依赖对象”。

    这句话该如何理解呢?

    从上面这句话我们知道,依赖注入是后面提出的。

    (1)同一个概念:当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在 传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,而是通过依赖Spring容器主动创建实例,然后注入调用者。

    (2)不同角度(层面)

    ​ 1)控制反转:控制反转是站在调用者控制权的角度(层面)来看的。主动变被动,控制权反转。

    ​ 2)依赖注入:依赖注入是站在调用者获得依赖对象的方式的角度(层面)来看的。调用者通过依赖注入的方式调获得依赖对 象。

    ​ 当然,如果站在其他角度,肯定还有其他不同的见解。只不过这是名人说的,并且被世界认同,经过很长时间都没有被否定,并写在教科书上,说明这两个不同角度定义的见解是非常重要的,所以我们要理解记忆。

    参考:(72条消息) 控制反转和依赖注入的理解(通俗易懂)_行者彡的博客-CSDN博客_依赖注入

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值