繁体   English   中英

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

[英]Why a class with only static methods is used?

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

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

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

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

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

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

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

我们在项目集群中使用这样的类,例如UtilitiesConstants功能。

这意味着您可以随时使用诸如ConvertXFromYtoZWriteDebug类的实用程序,而无需处理对象的实例。

我们也使用了“很多”不同的常量。 将它们放在一个静态位置非常好: Constants.MyArea_Type_Foo

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM