控制反转 - 何时使用?

时间:2012-03-30 08:24:53

标签: design-patterns inversion-of-control

在哪种情况下,我应该使用控制反转 - 构建所有应用程序类还是仅依赖于其他对象的那些应用程序类?

1 个答案:

答案 0 :(得分:4)

简单地说,只要你想在类之间松散耦合。

我认为Mark Seemann在他的书 Dependency Injection in .NET 中有一个关于DI / IoC的简单但非常真实的陈述:

  

DI可以实现松耦合,而松耦合使代码更易于维护。

因此,当你想拥有松散耦合带来的所有优点时,你应该使用它,仅举几本书:后期绑定,可扩展性,并行开发功能,可测试性。为了实现所有这些优势,您需要支付在代码库中实施和维护IoC解决方案的成本,对于绿色领域项目而言,恕我直言可以忽略不计,特别是由于IoC容器。有关如何针对您的应用程序全局实现它的想法,您可以查看Composition Root Pattern

当然,也可以仅为项目的某些部分实现IoC,特别是如果您正在使用棕色字段项目。如果你正在使用IoC容器,这种方法的一个缺点是IoC容器的使用可能不再透明,但你必须明确地调用它并询问你需要的实例(服务定位器模式)。 / p>