2014-05-02 199 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。 –