Feb. 15 00:05~00:22
▲Google搜尋結果
條件判斷式也是造成Long Method怪味道的常見原因之一,今天介紹Decompose Conditional重構來移除這個怪味道。
▼以下範例節錄自《Refactoring》。Order類別有一個charge()函數,接受兩個參數:日期與數量。如果日期在夏季開始之前或是夏季結束之後,則訂單的金額採取冬季計價,反之則採取夏季計價。
***
▼charge()函數的邏輯雖然不複雜,但還是要動點腦筋才想得清楚。看看套用Decompose Conditional如何讓它變得更清楚易懂。把原本charge()函數抽離出notSummer()、winterCharge()與summerCharge(),重構之後的charge()函數不但簡化了條件式,程式邏輯也變得一目了然。
***
看完這個例子不知道鄉民們有沒有發現,Decompose Conditional其實透過Extract Method來簡化條件是邏輯。如果不想記那麼多重構方法,可以只記住基本的Extract Method。
***
友藏內心獨白:應用情境不同就產生不同名稱的重構方法。
沒有留言:
張貼留言