靜態方法 Static 到底該不該用?

2021-09-06 01:53:19 字數 621 閱讀 9383

最近在review同事**的時候發現乙個問題,很多類裡邊穿插了一些靜態方法,而且情況很普遍,呼叫的時候有的需要例項化,有些不需要例項化直接呼叫。我問他為什麼要用那麼多靜態方法,他說「使用方便,不需要例項化,而且這些靜態方法不需要儲存狀態,不需要呼叫外界變數,應該是執行緒安全的」。後來我們一起研究討論了一下靜態方法的使用問題,結論如下:

1. 靜態方法不需要例項化,使用方便

2. 靜態方法不存在常駐記憶體,效率高等幻覺,可以看看這篇文章

3. 乙個類裡面不要穿插靜態方法和非靜態方法,因為違反oo和設計原則

4. 大量使用靜態方法有違oo原則

5.使用靜態方法的情況:適合用在helper型別的輔助類、基礎類,這個類本身就定義成static class,看一段微軟的示範**:

internal

static

class

guard

public

static

void

validatemethodparameters(methodbase methodinfo, 

object

parameters, type typebeingbuilt)}

到底該不該告發

昨天看到乙個新聞,乙個女孩因為父母離婚,把自己的父親告上法庭,包二奶。這個故事從人情世故來看,最大的猜測可能就是,王母的疑心比較重,王父感情走私,兩人離婚,在現代社會,是乙個很普通的感情糾葛,麻煩的就是王一時衝動,把自己的父親暴露在網路上。網路是乙個很可怕的 群體的無理智性在網路上發揮的淋漓盡致。王...

腦殼疼!到底該不該裸辭?

在3 4月的跳槽高峰期裡,一群為了 該不該裸辭 這個話題展開了一場嚴肅的辯論,前方是辯論現場,歡迎各位圍觀,發表你的觀點!正方 該裸辭 我每次跳槽都是選擇裸辭,裸辭是最簡單的方式。如果不裸辭,每次請假都要編理由,一兩次還可以,次數多了領導難免起疑心,自己還要遮遮掩掩。明明就是正當辭職,感覺像自己心虛...

終論到底該不該寫isDebugEnabled

以前 很多日誌框架都不支援 模板的寫法 如log4j1.x,apache commons logging 於是只能通過字串拼接來輸出日誌內容 log.debug debug日誌 info 這樣一來,每當jvm執行到此時,不管你當前的日誌級別是多少,都會執行一次字串拼接,然後將結果做為形參傳遞給deb...