代码之家  ›  专栏  ›  技术社区  ›  Budda

依赖注入:我们都需要知道吗?[关闭]

  •  3
  • Budda  · 技术社区  · 14 年前

    我的一个朋友(他是一个.NET/C++开发者,就像我一样)问我:

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

    请告诉我:

    1. 你的意见:我们真的需要知道这个模式以及如何实现它吗?
    2. 很好的参考(链接),可以解释“为什么?”

    非常感谢。

    另外,我知道我要求很多…但我自己找不到好的参考资料…

    4 回复  |  直到 14 年前
        1
  •  4
  •   Mark Seemann    14 年前

    依赖注入是一种创建松散耦合代码的工具。因此,它不是强制性的,但它将使更改、重构和测试更加容易。如果你想深入讨论DI以及如何应用它,我推荐下一本书 Dependency Injection in .NET . 有几个章节可供下载,让您开始学习。虽然书中的例子都是C,但思想是普遍的。

        2
  •  3
  •   Community Egal    7 年前

    依赖注入是帮助程序员或架构师设计模块化、独立、松散耦合和易于测试的代码的工具。这不是一个强制性的要求,但是它确实使软件开发变得简单,因为它减轻了很多依赖性管理问题,否则会出现。由于它将您的组件与它们的依赖性分离,所以将这些组件与其他大型产品隔离开来进行单元测试也变得更加容易。

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

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

    此外,以下是一些很好的参考资料,可以更详细地解释DI:

        3
  •  2
  •   Doc Brown    14 年前

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

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

    (清洁代码谈判——单元测试)

        4
  •  1
  •   Budda    14 年前

    这里有好的评论,但对于“你的观点:我们真的需要知道这个模式以及如何实现它”这个问题没有明确的答案。

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

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

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

    非常感谢你的帮助。