概念+相关名词解释
-
控制翻转 = Inversion Of Control = IOC
-
依赖注入 = Dependency Injection = DI
-
概念:控制反转IOC是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,还有一个名字叫做依赖注入DI。
-
两者关系:IOC是一种设计思想,而DI是这种设计思想的一个最典型的实现。
为什么要用控制反转和依赖注入
-
如果一个类A的功能实现需要借助于类B,那么就称类B是类A的依赖,如果在类A的内部去实例化类B,那么两者之间会出现较高的耦合。 一旦B出现了问题,A也需要进行改造,如果这样的情况较多每个类之间都有很多依赖,程序会极难维护并且很容易出现问题。要解决这个问题,就要把A对B的控制权拿出来,交给一个第三方去做,把控制权反转给第三方,就叫控制反转。由第三方(我们称作IOC容器)来控制依赖,把它通过构造函数、属性或者工厂模式等方法,注入到A内,这样就极大程度的对A和B进行了解耦。
-
好处:如果后期代码因改动量过大,这样做可以减少维护和管理的量。
-
我自己的理解就是:把A本来需要从B获得的东西(依赖),通过第三方换一种方式给(注入)它。
依赖注入的概念和目的
-
概念:把有依赖关系的类放到容器中,解析出这些类的实例,就是依赖注入。是实现控制反转的一种手段。
-
目的:实现类的解耦。
IOC容器的作用
-
注册类型:把一些类注册到容器中。在我们当前这个环境下我们要 服务注册 。
-
解析实例。如果我们想要获取A类,我们在容器里注册一个A类,这时候我们想要获得A的实例,我们一般会去 new A () ,但是现在我们只需要直接从容器里来请求这个实例。
依赖注入的实现
参考
-
场景举例: