Why Code Refactoring Work:
1.難以閱讀的程式,難以修改。2.邏輯重複,難以修改。
3.添加行為時需要修改現有程式碼,難以修改。(同時違反Desing Patterns:Open Close Principle)
4.複雜條件邏輯程式,難以修改。
Indirection and Refactoring:
1.Enable sharing of logic
一個sunmethod在兩個不同的地點被呼叫,或是superclass中的method被subclasses共享。2.To explain intention and implementation separately:
選擇每個Class和Method的名字,來解釋自己意圖的機會。Class或Method內部解釋和實現這意圖的做法。3.To isolate change:
在兩個不同地點同時使用同一個物件,其中一個地點想改變物件行為,則產生"同時影響兩處"的風險。為此可做出一個subclass,並在需要修改處引用這個subclass,這樣就不必承擔這風險。4.To encode conditional:
利用polymorphism,可以靈活彈性而清楚地表達條件邏輯。(Desing Patterns:strategy pattern)。重構是為了"未來"而不是為了"當下"。
No comments:
Post a Comment