什么是控制反转(IOC)
平时我们使用类的对象,需要自己new一个 然后调用。控制反转就是不自己实例化 而是交给第三方实例化,这里的第三方就叫做IOC容器。
控制反转这个名字就是相对于我们平时的使用模式起的,之前是我们自己控制类的实例化,现在由第三方实例化,这里对于对象的控制责任就反转到IOC容器手上了。
控制反转不是具体的技术,而是一种思想 只要是实现这个思想的技术都可以叫做控制反转
什么是依赖注入
依赖注入是控制反转发挥作用的方式
平时我们在代码中调用某个类需要指定这个类的依赖关系,同时如果这个类改动了(比如构造方法改变) 那么还需要在调用处修改
依赖注入追求的就是解耦,当我们使用IOC容器实例化对象、注入对象时,这些对象间的依赖关系就转交给IOC容器管理了。依赖关系就解耦了
PS
1、控制反转和依赖注入都是思想而不是具体技术,我们可以使用具体技术实现这种思想
2、控制反转和依赖注入是一套武学礼包,控制反转是内功秘籍,依赖注入是和控制反转这个内功配套的外功秘籍