依赖注入:我们都需要知道吗?

时间:2010-07-14 05:44:28

标签: .net c++ architecture dependency-injection

我的一个朋友(他是我的.NET / C ++开发人员)问我:

  

依赖注入:我们都需要知道吗?为什么呢?

请告诉你:

  1. 您的意见:我们真的需要知道这种模式以及如何实施它吗?
  2. 可以解释“为什么?”的好参考(链接)
  3. 非常感谢你。

    P.S。我知道我问了很多......但我自己找不到好的参考......

4 个答案:

答案 0 :(得分:4)

依赖注入是一种用于创建松散耦合代码的工具。因此它不是强制性的,但它将使更改,重构和测试更容易。如果您想彻底讨论DI以及如何应用DI,我建议您推荐即将出版的书Dependency Injection in .NET。有几个章节可供下载,以帮助您入门。虽然书中的例子都是C#,但这些想法是普遍的。

答案 1 :(得分:3)

依赖注入是一种工具,可帮助程序员或架构师设计模块化,独立,松散耦合且易于测试的代码。这不是强制性要求,但它确实倾向于使软件开发更简单,因为它减轻了许多本来会出现的依赖性管理问题。由于它将组件与其依赖项分离,因此它可以更容易地将这些组件与其他较大的产品隔离开来进行单元测试。

大约一年前,我在SO上发布了一个关于IoC(Inversion of Control)问题的答案。您可能会发现答案很有用,因为这些概念也适用于依赖注入,因为IoC只是实现DI的一种方法。

Can anyone explain to me, at length, how to use IOC containers?

此外,这里有一些很好的参考资料更详细地解释DI:

答案 2 :(得分:2)

这是一个非常好的参考,为什么依赖注入对于编写(单元)可测试代码至关重要:

http://www.youtube.com/watch#!v=wEhu57pih5w&feature=related

(清洁代码会谈 - 单元测试)

答案 3 :(得分:1)

此处发布了好评,但对于“您的意见:我们是否真的需要了解该模式以及如何实施该问题?”这个问题没有明确的答案。

从我的角度来看,如果至少有一个选项适用于你,那么它应该是“是”:

  • 您需要为应用程序编写(自动)单元测试;
  • 您需要解耦应用程序的组件;
  • 您希望能够轻松更改数据来源。

回答问题“为什么?”列在建议的链接中。

非常感谢你的帮助。