- Long method
- 使用 temp 變數 keep 一份計算結果,然後不斷地參考到該 temp 變數。
- Temp 變數太多,導致無法使用 Extract Method,所以先使用 Replace Temp with Query 減少 temp 變數的數量。
- 將計算區塊抽出成一個 method,然後將所有指向該 temp 變數的地方改為呼叫該 method。
限制:
- 該 temp 變數只能被 assign 一次,如果被 assign 多次,得先使用 Split Temporary Variable 將每次 assign 改以不同的 temp 變數取代。
- 該計算區塊不可以有副作用,也就是必須允許多次呼叫而不會得到不同結果或者影響其他地方,如果有副作用,得先使用 Seperate Query from Modifier 將查詢與修改分開來。
Temp 變數常用於 loop 加總計算,這種情況必須將整個 loop 區塊抽到 query method 裡。
從同一個 loop 區塊抽出多個 temp 變數,或者呼叫多次 loop 計算 temp 變數對效能影響不大。
沒有留言:
張貼留言