什么是IOC(控制反转),IOC的原理

什么是控制反转

控制反转也可以理解为创建对象权利的交接,我们在获取对象时,都是采用 new 的方式。是主动的。现在:我们获取对象时,同时跟工厂要,由工厂为我们查找或者创建对象。是被动的

IOC的原理

IOC是通过反射+工厂+容器来完成了对象的创建和实例化以及存储,通过反射进行创建对象,然后放到容器当中,容器我们可以看做是一个map,变量名称就是key,然后数据类型就是value,然后我们可以通过用key或者value从容器当中获取到存储的对象。

什么是工厂模式

工厂模式属于创建型模式,它提供了一种创建对象的最佳方式。工厂模式关心的是最终产出(创建)的对象, 而不关心创建的过程。举个例子,好比您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。

IOC的优点

1、降低程序间的耦合。
2、减少内存的开销(多次new对象会占用我们的内存)。
3、资源集中管理,实现资源的可配置和易管理。

IOC的缺点

1、创建对象的步骤变复杂了,不直观,当然这是对不习惯这种方式的人来说的。
2、因为使用反射来创建对象,所以在效率上会有些损耗。但相对于程序的灵活性和可维护性来说,这点损耗是微不足道的。

常见面试题:

1、为什么要用工厂模式?(优点?) 为什么不直接用new?
2、spring中哪里用到了工厂模式?
3、IOC管理对象有什么好处?


版权声明:本文为weixin_43888891原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>