寫這樣的Java方法等著被吐槽吧

2021-09-10 11:29:00 字數 1200 閱讀 2577

寫作文要做到段落清晰、每段思路流暢、每段主旨明確,要有一條清晰的線穿插整篇內容,編寫程式**和寫作文是乙個套路。乙個類就像一篇小作文,類的單一職責就是小作文要敘述的主旨,類的方法就是小作文的段落,類的方法組合在一起就是小作文的整篇內容。類的方法要像文章的段落一樣,有主旨,即只做一件事;思路清晰,即先做什麼、後做什麼。方法沒寫好就像作文的段落沒寫好一樣,會讓人有一種「寫的都是啥」的反感。下面出現的方法,會讓閱讀**的人很反感。

getabc()。get是得到、抓住的意思,getabc是想表達獲取abc,但是沒表達出如何獲取的,get開頭的方法應盡量是getter方法。

乙個方法就是乙個要執行的動作,應該以動詞開頭,結合名詞、形容詞,使用一些有意義、可搜尋到的、讀的出來的單詞,方法名應該名副其實的描述方法體的內容,做到看其名知其意,如queryabcfromdb。

queryabcby(arg1,arg2...argn)。方法的引數列表太長,在使用時需要去關注每個引數傳什麼值、取哪個引數的值。更糟糕的情況,引數列表的引數名是arg1、arg2這種無意義的命名,這樣的方法封裝成jar給他人使用,對使用者來說很茫然,不知道如何使用。

如果乙個方法的引數列表個數大於等於3,就需要將這些引數封裝到乙個類中,使用這個類作為引數,這樣對使用者來說容易很多。

乙個方法體的**行數幾十行,甚至上百行。閱讀這樣的方法,相信很多人的心裡是拒絕的。冗長的**行像寫作文不分段落一樣,把各種論述雜糅到一起,根本看不明白想描述什麼,而且這樣的方法一定做了不止一件事。

方法體要短小且只要一件事,做到職責單一,這樣的方法一目了然,易於閱讀和理解。判斷乙個方法是否不止做了一件事,那就是看是否能再拆出乙個方法。在拆方法的時候,做到拆出來的方法是同乙個抽象等級的,其實就像乙個操作拆成很多步驟一樣,每一步拆成單獨的方法,而這些步驟在這個操作裡是同一等級,順序執行的。

if(x==1)elseelse{

string resultcode;

response response;

if(hasparamempty){

//拋異常

//網路通訊

resultcode和response過早的定義,有可能根本用不到,浪費儲存資源。區域性變數的定義要和使用到它的**很近,用到再定義。

java版的KMP演算法 歡迎吐槽

public class kmp char s new char s.length char t new char t.length for int k 0 k s.length k for int k 0 k t.length k int next new int t.length getnext...

吐槽 程式設計師 這就是我們天天寫BUG的原因

最近在網路上看到乙個程式設計師吐槽的段子,形容簡直不要太貼切了,廢話不多說,來看看具體吐槽吧!以下為程式設計師第一人稱吐槽內容 可以說絕大部分程式設計師都被這樣問過 你們能不能程式寫好一點 能不能沒有那麼多bug 朋友們!真的不能!一點bug都沒有 我們不就失業了?其實真不是我們程式設計師不行啊 是...

被瘋狂吐槽的胡潤富豪榜,還有存在的價值嗎?

每天早上都要看一下胡潤富豪榜 如果有自己的名字,就抓緊定去馬爾地夫的機票徹底享受人生 如果沒有自己的名字,就起來洗臉吃飯坐地鐵去上班 這麼說吧,我們每天上班的動力不是其他的,只是因為 貧窮 對於絕大多數人來說,胡潤富豪榜是可望而不可及的。而能夠上榜,即使對富豪來說也是一種榮耀和認可。但是偏偏有那麼一...