2007年9月5日 星期三

Composing Methods

1. Extract Method
動機: 函示過於冗長, 或一眼無法得知該函示的用意
方法: 將程式碼組織, 並獨立出來, 注意在 refactoring 的過程, 需取有意義的函示與變數名稱

2. Inline Method
動機: 若該函示屬於不必要的, 或多餘的
方法: 將函示的程式碼整合進來, 並移除該函示

3. Inline Temp
動機: 暫時變數只被賦值一次
方法: 去除暫時變數, 直接使用運算結果, 可以在變數前加上 final 檢驗之

4. Replace Temp with Query
動機: 暫時變數只被賦值一次, 但可能被多次運用
方法: 去除暫時變數, 將運算的內容提煉到一個 private method

5. Introduce Explaining Variable
動機: 運算式複雜又難以閱讀時
方法: 將運算的內容提煉成變數, 來解釋該內容

6. Slipt Temporary Variable
動機: 程式有些變數不只被被賦值一次
方法: 針對每次賦值, 提供一個獨立、暫時的變數

7. Remove Assignments Parameters
動機: 有參數被直接賦值, 會降低程式的清晰度
方法: 以一個暫時變數, 代替參數的位置

8. Replace Method with Method Object
動機: 有一個大型函示, 無法直接對區域變數採行 Extract Method, 或有很多的區域變數是可以重複利用的方法: 將函示放進一獨立物件, 並將這些區域變數變成物件的 field

9. Substitute Algorithm
動機: 想把某個演算法替換為更清晰的演算法
方法: 將函示本體的演算法做替換

0 意見: