2011-11-19 30 views
3

我設置我的編譯器來警告我有關靜態方法。Java儘可能使靜態方法變爲靜態,好的做法?

這些方法主要是一些幫助者做計算,設置傳遞對象的屬性等。

我應該讓它們成爲靜態的,還是這是我的編碼風格是城市(CN)的標誌?

+2

我不認爲有任何規則,你應該使他們全部靜態或全部不是靜態的。在我看來,靜態應該用在它所屬的地方 - 屬於類中的方法而不是實例,比如實用程序方法,而不是在不存在的地方使用。 –

回答

5

請謹慎使用靜態方法處理以後要抽象的事物。靜態方法不支持交換實現,因爲消費類和實現類之間存在硬鏈接。

這就是說,我認爲仍然有靜態方法適用的地方(工具類)。

+1

很好的建議 - 1+ –

+0

@HovercraftFullOfEels不錯的暱稱 – Maarten

1

所有無狀態實用程序類都應靜態化。大師,糾正我,如果我錯了:無狀態的靜態方法(沒有全局/靜態變量的使用)是線程安全的!

2

一般來說,屬於該類的實用方法和其他東西應該是靜態的。面對一種不訪問實例狀態的方法,你應該問自己,儘管子類可以合理地重寫提供依賴於狀態的實現的方法,然後才能使其變爲靜態。

1

使靜態方法成爲一種很好的做法,因爲您知道靜態方法不需要訪問任何實例數據。出於這個原因,它也有一個小的性能提升。