我正在尝试将DI / IoC编程方法引入我们的开发组,但其中一位开发人员提出了以下问题:
我们为什么需要它?有没有具体的例子可以向我展示使用像温莎城堡这样的DI / IoC框架的好处?
因此,我问是否有任何案例研究或文章证明DI / IoC可以在企业级.NET网站中受益?
提前致谢
更新:我知道DI / IoC带来的所有好处,但我还没有看到网络上的完整示例,该示例贯穿了使用DI / IoC创建应用程序并从中受益的整个过程.再次,任何文章或链接将不胜感激.
我正在开展一个项目,我可以看到依赖注入和控制反转至少有三个好处:
>灵活性DI以及在较小程度上允许IoC与单元测试相关.我们可以对代码(或被测系统)的特定方面进行归零,并测试这一部分功能,而无需准备数据库表或受到我们目前不关心的代码段的影响.
>通过IoC注入依赖关系是一种相当无缝,自动化的事情,它允许人们在不要求底层支持类完整的情况下处理逻辑.例如,我可以编写一个显示用户列表的网页,而无需编写任何代码来从数据库中检索该信息.这可以由其他人编写,可能是并行编写,因此可以在更短的时间内完成更多的工作.
>在我目前的一个项目中,我希望能够向其中一个利益相关者演示Web用户界面和后端处理. DI和IoC使这一过程变得更加容易,因为我可以拥有一系列假货,这些假货可以提供进行演示所需的确切数据.这样,我就不会在前一天确定数据库表的填充方式与我预期的方式相同.
DI鼓励特定类及其依赖项之间的松散耦合,而IoC允许我们动态配置这些依赖项的哪些实现被注入到使用它们的类中.后者对于#3非常重要,因为我的Web应用程序将根据我对web.config文件所做的设置大部分使用IoC进行配置.当我们去制作并开始使用非假类时,我将只需要更改该文件.