是否应该尽可能避免静态方法?

时间:2010-06-02 15:15:02

标签: oop

在OOP中开发应用程序时,是否应尽可能避免使用静态方法?

4 个答案:

答案 0 :(得分:1)

不,他们不应该。

任何不对象实例操作的方法都应该是static

如果您不需要对象实例,则没有必要。

答案 1 :(得分:1)

有一些非常具体的案例规定了它们的用法,例如将类方法传递给需要函数指针的C API或创建某些模式(如Singleton)的方法。一般来说,除非有充分的理由,否则你不想使用它。

否则不鼓励使用它们,因为它们在某些有限的情况下使用意味着您存在全局数据,因为它们无法自动访问“this”指针。这违反了OO原则,例如数据隐藏。

答案 2 :(得分:0)

在我看来,静态方法比实例方法简单,因此应尽可能使用它们。

问题是要知道什么时候不可能:通常,即方法需要读取或写入对象/实例数据成员时。

答案 3 :(得分:0)

这取决于 - 如果你真的只需要编写一个独立的函数,那么在Java或C#等OOP语言中需要一个静态方法。在这种情况下,您可以创建某种包含各种静态方法的Utility类。