重构-改善既有代码的设计(1)
?
?
1,建立可靠地測試環境
?
2,尋找要重構的代碼(函數或者類)
???一般為比較長的函數,或者邏輯混亂的類
?
3,重構后的函數要修改局部變量,增加程序的可讀行
?
4,函數應該放在它所使用的數據的所屬對象內;
???(函數搬遷)
?
5,盡量剔除臨時變量
?
6,不要在另一個對象的屬性基礎上運用switch語句,如果不得不使用,頁應該在對象自己的數據上使用,而不是別人的數據上使用
?
?
7,將子類型和父類型進行繼承操作,來實現多態操作(Movie提取三個子類)
?
?
?
8,將相同類型的不同部分以最小單位提取成類(Movie的price?提取成三個子類)?
?
9,提取抽象類(Price)
?
什么時候重構?
為什么重構?
重構后的好處?
?
?
1,重復代碼
?
??①兩個函數中有兩處使用同一表達式---提煉函數,讓這兩個函數同時調用提煉出來的函數
??②兩個兄弟類中有兩處使用同一表達式----將函數提煉到超類中,子類調用超類函數
?
2,代碼過長
原則:每當感覺需要以注釋來說明點什么的時候,我們就把需要說明的東西寫進一個獨立函數中,并以其用途命名。我們可以對一組甚至短短一行代碼做這件事,只要函數名能夠表達其用途,我們就應該毫不猶豫的這么做
①?避免使用臨時變量,因為這樣做對程序的可讀性得不到任何提升
②
③
?
3,如何確定該提煉哪一段代碼呢?
①?以個很好的技巧是:尋找注釋。
他們通常能指出代碼用途和實現手法之間的語義距離..
如果代碼前方有一行注釋,就是在提醒你:可以將這段代碼替換成一個函數。
而且可以在注釋的基礎上給這個函數命名。就算只有一行代碼頁應該這么做
②條件表達式和循環頁是提煉的信號
???循環可以和其內的代碼提煉成一個獨立的函數,
???條件表達式可以使用分解條件來提取函數
?
?
4,過大的類
?
①單個類干的事情太多將帶來滅亡。
?
??
轉載于:https://www.cnblogs.com/anbylau2130/p/3359799.html
總結
以上是生活随笔為你收集整理的重构-改善既有代码的设计(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡提额申请为什么被秒拒?不得不知道的
- 下一篇: 极氪首款MPV官图亮相:前脸酷似劳斯莱斯