004 - 解释一下什么是IoC

回答技巧:先说字面含义,再说好处,然后重点说核心思想,把IoC思想对应的两种实现方式引出来,形成关联记忆,由此带出下一个问题。

IoC是控制反转的意思,英文全称为:Inversion of Control,它是面向对象编程中的一种设计原则。

采用IoC设计的最大好处就是降低代码之间的耦合,能够大幅减少代码编写量。

IoC不是具体的技术,而是一种思想。在传统的Java程序中是直接通过new关键字来创建对象,是程序主动去创建依赖的对象,而在IoC思想中,需要有一个专门的容器来创建这些对象,也就是说由IoC容器来控制对象的创建,那么到底是谁控制谁?当然是IoC容器控制了对象。控制了什么?控制的是外部资源的获取,这些资源不仅仅包括对象,还可能包含文件等资源,这就是控制的含义。

把IoC中的控制搞清楚了,就需要理解反转。传统应用程序是由我们自己在对象中主动控制,去直接创建或者获取依赖的对象,比如A依赖B,A就需要主动去创建B,这个是正向的,理解为正转。而反转,就是由IoC容器来帮我们创建B并且把B注入给A,A只需要直接使用,被动接受B对象的注入即可,所以这个是反转。具体是什么反转了?依赖对象获取的方式被反转了,A依赖B的时候,原本需要主动去创建B,变成了被动接收IoC容器创建的B。

IoC的具体实现策略一般有两种,分别是依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup,简称DL)。

接下来可能会问:

《005-说一下什么是依赖注入?》

《005-说一下什么是依赖查找?》

相关推荐
©️2020 CSDN 皮肤主题: 护眼 设计师:闪电赇 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值