0
我有一個簡單的Java
應用程序,它在一個類的main method
中執行其所有邏輯。使用所有靜態方法而不是其他「服務」類的缺點?
當前我剛剛在這個類中創建了方法,將它們聲明爲Static
並在主要中調用它們。
該方法優於例如創建一個"service"
類,然後創建它的一個實例來調用我的方法?
我有一個簡單的Java
應用程序,它在一個類的main method
中執行其所有邏輯。使用所有靜態方法而不是其他「服務」類的缺點?
當前我剛剛在這個類中創建了方法,將它們聲明爲Static
並在主要中調用它們。
該方法優於例如創建一個"service"
類,然後創建它的一個實例來調用我的方法?
如果你的方法是功能性的(沒有副作用),那麼可以使用靜態方法。如果他們有副作用(例如更改靜態類成員),則此設計是危險的,因爲系統的其他部分可能突然中斷。
一個更普遍的問題是,它很難單元測試這種靜態方法,因爲它們不容易被嘲笑。在這種情況下,最好使用實現接口的stingleton。這單然後通過一個「虛擬」 - 實施
也看到所以這個問題被嘲笑:Why aren't static methods considered good OO practice?
一個缺點:如果一個實例的方法改變的東西,它改變了向它提出的所有來電,因爲它是靜態的 – Stultuske
可以請你詳細說明一下嗎? – java123999
你的意思是向你解釋靜態是什麼?這是非常基本的。只需查找java靜態vs實例 – Stultuske