依赖注入与控制反转的理解

依赖注入(DI)与控制反转(IOC)其本上是一种编码的设计思想,可以理解为一个东西,实现了依赖注入,也就实现了控制反转,其实,我们在编写代码的时候,自已都可以用过了,但是,我们可以不知道而已,下面我们来举个例子说明一下,比如:人开车(假设每个人都有一辆车)

首先 要建一个 车类(class Car)  和  人类 (class Person)

依赖注入与控制反转的理解

从上面的代码可以看到,Person类和Car类的 耦合 非常严重,如果 Car类的构造方法发生了改变,比如多加一个参数,那么,不仅要修改 Car类的结构,同时,也要修改 Person类的结构

随便说明一下,类的产生顺序,以便理解,控制反转,  以上的代码可以理解的类的生成顺序是  先new person类,再在 person类中去 new Car类,    也就是  new person  ----------->  new Car

于是我们使用到了依赖注入(也就是 DI),在Person 使用一个类的属性,专门来存储car的对象,于是代码就变成了下面这样的

依赖注入与控制反转的理解

上面的代码 可以看到 每当要new person的时候,都需要传入一个 Car对象作参数,这就是依赖(DI),

同时,我们可以看到两个类的解藕,对 Car类做的任何修改,不会影响 Person类的实现,这就可以说 Person 类中依赖注入了 Car类

我们再来看一下类的实现顺序   要创建一个 person类的实例,必须先 创建一个 Car类的实例,现在类的创建顺序可以理解为

要得到一个person类的实例        new  Car ----------->new Person

是不是和之前的创建顺序反了过来,  这就是反转控制了

所以我们,实现了依赖注入,也就实现了反转控制

以上是我的理解,如有不正确的地方,请留言指正