一、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
歡迎轉載,但任何轉載必須保留完整文章,在顯要地方顯示署名以及原文鏈接。如您有任何疑問或者授權方面的協商,請給我留言