2010-12-07 80 views
0

在编写几个类文件中常见的代码时,我倾向于将它们放置在帮助程序文件中。帮助程序类和单元测试

帮助程序或实用程序类是否应该注入需要它的类?或者更好地简单地引用它“构图”?

Regards

回答

0

更好地使它成为一个静态类的工具类。

依赖是一些什么密切相关的特定类,但在你的情景我会说,你需要一个工具类。

+0

Utility和Helper的主要区别是什么? – Bill 2010-12-07 08:36:02

+0

没有点比较,据我所知,但主要是工具类是静态类,你不需要在工具类中有子类 – TalentTuner 2010-12-07 08:39:00

0

我会说你不需要注射的复杂性,除非你帮助多种助手类,每个助手类以相同的方式做一个稍微不同的方法。我会说构图是合理的;你也可以将它作为一个实用工具或工具包的静态类,这可能会使你的代码更加明确。

2

你为什么选择Composition vs Inheritance的原因应该是众所周知的SOLID原则。然后,“赞成构成比继承”是他们的后果,国际海事组织。

IMO你有一个实用工具类,当

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

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

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