针对不同环境使用不同实现的优缺点

时间:2014-01-23 21:40:05

标签: c# .net dependency-injection

我知道依赖注入允许但是你想要为不同的测试环境注入不同的实现吗?即使用implementationA进行sprint测试,使用implementationB进行回归? (假设实施更改是针对数据存储库的。)

我正在谈论这件事 对我而言,这听起来很危险,因为如果实施改变取决于它的环境,那么包的完整性就会被包含在内。

我使用过具有不同配置但未切换实际代码实现的平台。

任何想法/可能的利弊?

非常感谢

1 个答案:

答案 0 :(得分:0)

DI容器可以更容易拦截或修饰依赖项。这允许您在不改变系统实际行为的情况下添加横切关注点(例如测量性能的装饰器)。这允许您在运行验收测试环境时或在自动运行集成测试套件时插入这些方面。由于您没有替换某些依赖项,而只是“增强”它们,因此您不会改变系统的行为,风险也相对较低。