依赖注入(DI)和控制反转(IoC)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/swjtu2014112194/article/details/85642226

依赖注入(DI)和控制反转(IoC)是一个意思。

当某个java对象需要调用另一个java对象(被依赖者),在传统模式下通常有两种做法:
原始做法: 调用者主动创建被依赖对象,然后再调用被依赖对象的方法。

简单工厂模式: 调用者先找到被依赖对象的工厂,然后主动通过工厂去获取被依赖对象,最后再调用被依赖对象的方法。

注意上面的主动二字,这必然会导致调用者与被依赖对象实现类的硬编码耦合,非常不利于项目升级的维护。使用Spring框架之后,调用者无需主动获取被依赖对象,调用者只要被动接受Spring容器为调用者的成员变量赋值即可,由此可见,使用Spring后,调用者获取被依赖对象的方式由原来的主动获取,变成了被动接受——所以称之为控制反转。
另外从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量——相当于为调用者注入它依赖的实例,因此Martine Fowler称之为依赖注入。

猜你喜欢

转载自blog.csdn.net/swjtu2014112194/article/details/85642226