依赖注入与控制反转的理解
依赖注入(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
是不是和之前的创建顺序反了过来, 这就是反转控制了
所以我们,实现了依赖注入,也就实现了反转控制
以上是我的理解,如有不正确的地方,请留言指正