复制
如果这个问题看起来很简单,请原谅我 - 我正在查看一些看起来不错的源代码,但它提出了一些问题......
如果给定的类没有成员数据 - 即它不维护任何类型的状态,那么不将该类标记为具有静态方法的静态类有什么好处吗?
不将不保持状态的方法标记为静态有什么好处吗?
谢谢!
编辑:由于有人提出,我正在查看的代码是用 c# 编写的。
如果这个问题看起来很简单,请原谅我 - 我正在查看一些看起来不错的源代码,但它提出了一些问题......
如果给定的类没有成员数据 - 即它不维护任何类型的状态,那么不将该类标记为具有静态方法的静态类有什么好处吗?
不将不保持状态的方法标记为静态有什么好处吗?
谢谢!
编辑:由于有人提出,我正在查看的代码是用 c# 编写的。
是的。我能想到一些原因:
interface
或什么)我想说使它们成为类的静态方法是有好处的,最重要的是使类抽象。这样,程序员就很清楚,这个类从来没有被实例化过,并且方法仍然可用。
如果您打算(或认为您可能打算)从类继承并使用确实更改状态的代码覆盖这些方法,那么将不更改状态的方法保留为非静态方法可能会有好处。虽然在那种情况下它真的应该是一个抽象类。
如果一个类不维护任何状态,没有任何实例方法,并且可以完全用类方法实现,我通常会仔细研究它的行为是否实际上在其他地方更有意义。我发现它们通常似乎有很多类似 的方法doSomethingWithItem(Item item)
,这在Item
.
是的,我知道这不能回答你的问题,但我认为其他人已经很好地涵盖了这一点,我想从另一个角度出发。