2014-05-02 155 views
0

比方说,比如我有一个类设置为这样:从非静态/共享方法调用静态/共享方法,好还是坏?

Class Foo 
    Private instanceVariable As Integer = 2 

    Public Shared Function Bar(ByVal localVariable as Integer) As Integer 
     Return localVariable * 2 
    End Function 

    Public Function Bar() As Integer 
     Return Bar(instanceVariable) 
    End Function 
End Class 

我有,希望相对简单的问题/秒。这是好的设计还是这个皱眉?为什么?

编辑:
经过一些评论,我正在提炼我在问什么。

这是固有不好?或者它是完全正确的,但是与所有可能被滥用的东西一样?

+3

调用'Math.Pow'是好还是坏? –

+0

我不问,如果调用/创建静态方法是好还是坏,我知道它们是必需的,绝对是好的。我只是好奇,如果这个设计特别糟糕,你只是从非静态方法调用一个静态方法,只是传递实例变量。 –

+1

我认为这里的主要问题在于@Crono已经完全正确,它取决于,其余的是由观点决定的,而基于观点的回答(或者更确切地说,需要自以为是的答案的问题)在堆栈中并不是那么有建设性溢出。主要问题是:*你认为*? –

回答

2

其本身的做法是还不错。代码的意图将决定您的设计选择是否合适。当你考虑它时,它适用于几乎所有已知的编码模式。你可能会问是否使用泛型或多线程是好的做法,答案会是一样的。

.NET框架内有非静态类,它使用共享方法,并且在它们自己的上下文中它非常有意义。这一点应该让你认为这根本不是一个坏习惯。

所有你需要做的只是询问你自己想要做什么以及在静态环境中是否有意义。

+0

固定,所以更清楚发生了什么事情。尽管你的回答是,所以这不是一个坏习惯或什么?我想这是一个主要问题:“这不好吗?” –

+1

@JoshBraun看到我编辑的答案。其本身并不坏。但像其他任何东西一样,它可能以错误的方式使用。 ;) – Crono

+0

好的,那基本上就是我认为的答案。谢谢,Crono。 –