Dependency injection 帮助内部获得DI/IoC

Dependency injection 帮助内部获得DI/IoC,dependency-injection,inversion-of-control,castle-windsor,Dependency Injection,Inversion Of Control,Castle Windsor,我试图将DI/IoC编程方法引入我们的开发小组,但其中一名开发人员提出了以下问题: 我们为什么需要它?是否有任何具体的例子可以向我展示使用像温莎城堡这样的DI/IoC框架的好处 因此,我想问,是否有任何案例研究或文章证明DI/IoC可以在企业级.NET网站中受益 提前谢谢 更新:我知道DI/IoC带来的所有好处,但我还没有在web上看到一个完整的例子,它贯穿了使用DI/IoC创建应用程序的整个过程并从中受益。同样,任何文章或链接都将不胜感激。我正在从事一个项目,在这个项目中,我可以看到依赖注入和

我试图将DI/IoC编程方法引入我们的开发小组,但其中一名开发人员提出了以下问题:

我们为什么需要它?是否有任何具体的例子可以向我展示使用像温莎城堡这样的DI/IoC框架的好处

因此,我想问,是否有任何案例研究或文章证明DI/IoC可以在企业级.NET网站中受益

提前谢谢


更新:我知道DI/IoC带来的所有好处,但我还没有在web上看到一个完整的例子,它贯穿了使用DI/IoC创建应用程序的整个过程并从中受益。同样,任何文章或链接都将不胜感激。

我正在从事一个项目,在这个项目中,我可以看到依赖注入和控制反转至少有三个好处:

  • DI的灵活性,以及在较小程度上IoC的允许,因为它与单元测试有关。我们可以专注于代码(或测试中的系统)的一个特定方面,测试这一点功能,而无需准备数据库表,也无需受制于我们目前不关心的代码部分的突发奇想

  • 通过IoC注入依赖关系是一件相当无缝、自动的事情,它允许人们在不要求底层支持类完整的情况下处理逻辑。例如,我可以编写一个显示用户列表的网页,而无需编写任何代码从数据库检索该信息。这可以由其他人编写,可能是并行的,因此可以在更短的时间内完成更多的工作

  • 在我当前的一个项目中,我希望能够向一个涉众演示web用户界面和后端处理。DI和IoC让这变得容易多了,因为我可以收集一些假货,提供我进行演示所需的准确数据。这样,我就不会在前一天因为确保数据库表按我期望的方式填充而惊慌失措


  • DI鼓励特定类与其依赖项之间的松散耦合,而IoC允许我们动态配置将这些依赖项的哪些实现注入到使用它们的类中。后者对于#3很重要,因为我的web应用程序大部分都是根据我对web.config文件所做的设置,使用IoC配置的。当我们开始生产并开始使用非伪类时,我只需要更改该文件。

    列举几个特殊的好处:

    • 更干净的代码,它承载了业务逻辑的本质,而不是基础结构的厚度
    • DI通过提供一种分离应用层的机制,允许您创建更多的模块化应用程序
    • IoC允许外部化应用程序布线/引导,并(在某种程度上)提供集中式(某种)资源管理。含义-您有更多的时间专注于实际功能/业务逻辑
    有关国际奥委会和DI的一些好信息可以在这里阅读:


    假设它是关于Spring框架的,一般的DI概念仍然适用。

    如果你试图在我的项目中引入编程方法,但无法回答这个问题,我会像那个开发人员一样谨慎。同意Josh的说法,如果它听起来和看起来像蛇油,可能是。。。(除非是我试图教团队TDD,哈哈)