Summary: 在條件表達式的每一個分支上有着相同的一段代碼。將這段重複代碼搬移到條件表達式以外。函數
動機: spa
有時你會發現,一組條件表達式的全部分支都執行了相同的某段代碼。若是是這樣,你就應該將這段代碼搬移到條件表達式外面。這樣,代碼才能更清楚地代表哪些東西隨條件的變化而變化、哪些東西保持不變。im
作法:img
1.鑑別出「執行方式不隨條件變化而變化」的代碼。移動
2.若是這些共通代碼位於條件表達式起始處,就將它移到條件表達式以前。分支
3.若是這些共通代碼位於條件表達式尾端,就將它移到條件表達式以後。
4.若是這些共通代碼位於條件表達式中段,就須要觀察共通代碼以前或以後的代碼是否改變了什麼東西。若是的確有所改變,應該首先將共通代碼向前或向後移動哦,移至條件表達式的起始處或尾端,再之前面說的辦法來處理。
5. 若是共通代碼不止一條語句,應該首先使用Extract Method將共通代碼提煉到一個獨立函數中,再之前面所說的辦法來處理。