帮助程序类和单元测试

时间:2010-12-07 07:41:38

标签: c# dependency-injection

在编写几个类文件中常见的代码时,我倾向于将它们放在一个帮助文件中。

是否应将助手或实用程序类注入到需要它的类中?或者更好地简单地引用它“组合”?

此致

3 个答案:

答案 0 :(得分:2)

为什么选择Composition vs Inheritance的原因应该是众所周知的SOLID原则。然后,“赞成组合而非继承”是他们的结果,IMO。

IMO你有一个实用工具类

  • 它是静态的(如Saurabh所说);
  • 任务与特定域无关,但与原始数据相关(例如,反向列表的实用程序);
  • 其功能无副作用;
  • 没有其功能的替代实现。

无论如何,使用C#扩展,现在很少创建实用程序类。

使用实用程序类,您不需要注入它(它是静态的和可测试的)。相反,如果你有组合,依赖倒置原则指出你应该“依赖于抽象,而不是结果”,所以你可以让容器注入你的抽象。

答案 1 :(得分:0)

最好将它作为一个静态类的Utility类。

依赖性是与特定类密切相关的一些东西,但在你的观点中我会说,你需要一个实用类。

答案 2 :(得分:0)

我会说你不需要注射的复杂性,除非你帮助多种辅助类,每一种都以略微不同的方式做同样的事情。我说组成是合理的;你也可以把它变成一个实用工具或工具包静态类,它可以使你的代码更加明确。