为什么使用仅使用静态方法的类?

时间:2015-02-05 11:42:58

标签: c# .net class oop

我想知道仅使用静态方法创建类的原因,例如ConsoleConvert类。我能想到的唯一原因是将相关功能组合在一起,所以这与命名空间有何不同。

3 个答案:

答案 0 :(得分:6)

只有一个控制台,为什么你需要实例化一个类?没有必要。这只是一个原因。 (这只是实现单例设计模式的一种方式)

另一个原因可能是方法与实例无关,它们只是辅助方法,如Convert.XXX。与此相关的是扩展方法,它们必须位于static类中,因为它们与它们所包含的类的实例无关。

命名空间不能包含方法,因此您需要一个类来包装它们。

答案 1 :(得分:3)

对此的一个很好的答案是对Stroustrup的采访,谈论不变量。如果类没有修改任何属性,或者没有属性,则可能需要静态方法。

http://slesinsky.org/brian/code/stroustrup_on_invariants.html

答案 2 :(得分:0)

你已经明白了。当我们在我们非常大的项目群中使用这些类时,可能会很清楚:

我们使用这样一个类,例如作为我们项目群中的UtilitiesConstants功能。

这意味着您可以随时使用ConvertXFromYtoZWriteDebug之类的实用程序,而无需关注对象的实例。

我们也经常使用'不同的常数。将它们放在一个静态的地方非常好:Constants.MyArea_Type_Foo

顺便说一下,拥有static Regex.Match类也很不错。我几乎从不使用动态Regex类。