重構之重新組織函式 Inline Temp

2022-09-01 03:57:05 字數 746 閱讀 2552

inline temp

概述

乙個臨時變數,只被乙個簡單表示式賦值一次,而它妨礙了其它重構手法。

動機(motivation)

inline temp多半是作為replace temp with query的一部分來使用。惟一單獨使用inline temp的情況是:你發現某個臨時變數被賦予某個函式呼叫的返回值。一般來說,這樣的臨時變數不會有任何危害,你可以放心地把它留在那兒。但如果這個臨時變數妨礙了其它重構手法---例如extract method,就應該將它inline化。

作法(mechanics)

1、如果這個臨時變數並未被宣告為final,那就將它宣告為final,然後編譯。

這可以檢查該臨時變數是否真的只被賦值一次。

2、找到該臨時變數的所有引用點,將它們替換為為臨時變數賦值的語名中的等號右側表示式。

3、每次修改後,編譯並測試。

4、修改完所有引用點之後,刪除該臨時變數的宣告式和賦值語名。

public class inlinetemp 

//after inline-temp

public double usersalaryadvanced(string name)

public double usersalary(string name)

return 0;

}}

重構之重新組織資料

一.自封裝字段 你直接訪問乙個字段,但與字段之間的耦合關係逐漸變得笨拙。為這個字段建立取值 設值函式,並且只以這些函式來訪問字段。在字段訪問方式這個問題上,存在兩種截然不同的觀點。其中一派認為,在該變數定義所在的類中,你可以自由訪問它 另一派認為,即使在這個類中你也應該只使用訪問函式間接訪問。兩派之...

重構手法之重新組織函式 5

返回總目錄 本小節目錄 你有乙個大型函式,其中對區域性變數的使用使你無法採用extract method。將這個函式放進乙個單獨物件中,如此一來區域性變數就成了物件內的字段。然後你可以在同乙個物件中將這個大型函式分解為多個小型函式。我們一直在強調,小型函式優美動人。只要將相對獨立的 從大型函式中提煉...

重構手法之重新組織函式 2

返回總目錄 你的程式以乙個臨時變數儲存某一表示式的運算結果。將這個表示式提煉到乙個獨立函式中。將這個臨時變數的所有引用點替換為對函式的呼叫。此後,新函式就可以被其他函式使用。臨時變數的問題在於 只在當前函式可見。如果你在同類的別的地方訪問這個變數,你就必須重新寫表示式來獲取這個變數,這樣的話你就會在...