【问题标题】:Dependency injection: do we all need to know that? [closed]依赖注入:我们都需要知道吗? [关闭]
【发布时间】:2010-07-15 19:36:57
【问题描述】:

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

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

请告诉我:

  1. 您的意见:我们真的需要了解该模式以及如何实现它吗?
  2. 很好的参考资料(链接)可以解释“为什么?”

非常感谢。

附:我知道我问了很多...但我自己找不到好的参考...

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      (干净的代码谈话——单元测试)

      【讨论】:

        【解决方案4】:

        这里发布了好的 cmets,但对于“您的意见:我们真的需要知道该模式以及如何实现它吗?”这个问题没有明确的答案

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

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

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

        非常感谢您的帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-01-19
          • 1970-01-01
          • 2013-07-01
          • 2012-12-19
          相关资源
          最近更新 更多