控制反转概念
控制反转是影响广泛的设计模式,其主要目的就是为了管理对象之间的关系,为对象之间解除耦合,把对象生命周期的管理和关系的管理这些和对象个体无关的公共任务交给公共容器处理。
控制反转有如下好处:
-
每一个模块只专注于它自己的任务
-
每一个模块都假定自己与其它模块无关,无需操心其它模块是如何实现和做什么的
-
更换某个模块对其它模块无影响
依赖注入概念
容器全权负责组件装配,它把对象传递给需要的对象,依赖注入DI(Dependency Injection)是控制反转IoC(Inversion of Control)的一种实现方式。
控制反转实现
依赖查找Dependency Lookup:容器中的对象通过容器的API来查找自己所需的资源和协作对象。
依赖注入Dependency Injection:容器全权负责组件装配,它把对象传递给需要的对象。
一般使用第二种,因为它的耦合性更低。而且组件不会用到某个容器的特定API,可以脱离容器使用。所以在很多时候,一些资料会把IoC和DI混淆起来,两者互相混用,完全不分。其实DL有些时候还是被用到的。