代碼的壞味道【1】



 返回總目錄


一、Duplicated Code(重復代碼)

我們寫代碼的時候應該遵循DRY原則:Don't Repeat Yourself。如果你在一個以上的地點看到相同的程序結構,那么可以肯定:設法將他們合而為一,程序會變得更好。

1、同一個類的兩個函數含有相同的表達式

這時候你要做的就是將重復的代碼提煉到一個單獨的函數中,然后讓這兩個函數去調用它。

2、兩個互為兄弟的子類含有相同的表達式

要避免這種情況,只需要將兩個類的重復的代碼提煉出來,然后再將提煉出來的代碼推入基類中。

3、不相干類含有相同代碼

你應該將重復的代碼提煉到一個獨立類中,然后在兩個類中調用這個新類。

相同表達式只在一個類的一個方法出現,供其他方法調用

二、Long Method(過長函數)

函數的第一規則是要短小,第二規則是還要更短小。這個斷言無法被證明。也沒有研究結果表明小函數更好。

但是,通常擁有短函數的對象會活得比較好、比較長。

函數到底該多長?我們來看看《代碼整潔之道》的作者的一段話:

我們似乎有點偏離話題。好吧,那我們來說說,在長函數中該如何提煉?

1、尋找注釋

如果代碼前方有一行注釋,可以將這段代碼替換成一個函數,而且可以在注釋的基礎上給這個函數命名。

2、條件表達式和循環

可以將這兩個分別提煉到獨立的函數中

每個方法只做一件事,方法要定義完善、命名准確

 三、Large Class(過大的類)

1、一個類中有太多實例變量

如果想利用單個類做太多的事情,其內部往往就會出現太多的實例變量。一旦如此,重復代碼就接踵而至了。

可以將幾個變量一起提煉至新類內。提煉時應該選擇類內彼此相關的變量,將他們放在一起。通常如果類內的數個變量有着相同的前綴或字尾,這就意味着有機會把他們提煉到某個組件內。

2、一個類中有太多代碼

某些字段和方法只被某些實例用到,那就將這些字段和方法移到子類中。

每個類負責一組具有內在的相互關聯的任務

 To Be Continued...

 

本次分享到此結束。如果這篇文章對你有幫助的話,評論或推薦下吧!

作者:NaYoung
出處:http://www.cnblogs.com/liuyoung/p/7819969.html 
歡迎轉載,但任何轉載必須保留完整文章,在顯要地方顯示署名以及原文鏈接。如您有任何疑問或者授權方面的協商,請給我留言

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM