一、什么是IOC
IOC(Inversion of control)控制反转,首先搞清除控制了什么,反转了什么
1、控制对象的创建和销毁,即控制对象的生命周期。
2、反转:之前我们想用一个对象都是自己new一个,现在IOC帮我们实现,将对象的控制权交给了IOC容器。
通俗解释:举一个特定场景
比如一个用户,有一辆车,每天就上班下班
首先,用户定义了一辆车,有一些行为属性
然后用户实现用车下班回家
现在实现是用户自己去创建一辆车完成下班回家的功能,但是用户只是想回家,在回家之前得先造一辆车,这是不合理的。
再继续,当用户需要车的时候,再给传过来
现在好像方便一些,但是如果有些天比较堵,用户不能开奔驰车啦,只能坐公交回家,这样又得传一个公交车过来,太麻烦,然后将所有的车换成一个接口,每次给用户传一个Car接口过来,然后让公交车奔驰车都实现这个接口就好了。
现在好了,用户想用什么车就用什么车,方便了很多,但是,谁给用户传递呢,不能用到什么车自己就new什么车,这种肯定不科学。那么我们可以把所有的放在一个容器内,需要的时候拿出来,不用我们自己创建传给用户了,这样不管是谁想要什么车,什么时候想要车,需要的时候去这个容器内去拿就好了。这个时候就是控制反转的思想,我们把车的创建销毁交给容器,而且控制权交给容器,对我们来说,我们只是使用功能。这是简单的IOC介绍。