IOC是什么??
控制反转,这并非一种技术而是一种技术思想!在java开发中,意味着将设计好的对象交给容器管理,而不是传统的在对象内部直接控制!
谁控制了谁,控制了什么:传统应用都是在对象内部直接new进行创建对象,是程序主动去获取要依赖的对象;而IOC是专门由容器来创建对象,IOC容器来控制对象的创建;IOC容器控制了对象;主要是控制了外部资源的获取;
为何是反转,反转了什么:传统应用都是由对象中主动主动控制直接获取依赖对象,而反转是由容器来帮忙创建及注入依赖对象;因为由容器帮我们查找和注入依赖对象,对象只是被动的接受依赖的对象,所以是反转;那些方面反转了?依赖对象的获取被反转了!
IOC很好的体现了面向对象设计的法则之一,好莱坞法则:“别找我们,我们找你”;即由容器帮助对象找对应的依赖对象并注入,而不是对象主动去找去创建;
参考文章:http://www.cnblogs.com/xdp-gacl/p/4249939.html