对控制反转和依赖注入的突然顿悟

控制反转(IOC):

控制反转和依赖注入可以理解为同一件事,因为他们都是把创建对象实列的控制权限交给容器来操作。控制反转是从代码操作对象角度来看,将操作对象的控制权交给了容器,而依赖注入是把需要的对象或属性注入到代码中去

 

 

在面向对象编程中,每当我们要new一个新的对象的时候,也就是我们所说的实例化对象,一般情况下都是主动new一个新的对象。在IOC思想中,我们通常把实例化的任务交给别人,也就是自己主动的实例化变为被动的实例化,自己对实例的控制权被别人替代了,即控制权反转了。我们一般将实例化的任务交给IOC容器统一管理生命周期。

依赖注入(DI):

依赖注入是实现控制反转思想的一种方式,其想法就是在对象或属性被初始化的时候,将它所需要的依赖从外部注入进来,并不需要自己内部实例化依赖。

很多情况下我们会使用接口注入,而接口的实例化就归外部(通常是IOC容器),不仅符合多态,更加体现了依赖倒置原则(双方都应该依赖一个抽象)。 

小蚊子大人
原文地址:https://www.cnblogs.com/ywsheng/p/14930828.html