重構手法(三) 簡化函式呼叫

2021-04-01 15:20:54 字數 520 閱讀 8270

replace parameter with mehtods 以函式取代引數

物件呼叫某個方法,並將所得結果作為引數,傳遞給另乙個方法。而接受該引數的函式也可以呼叫前乙個函式。就讓引數接受者去除該引數,並直接呼叫前乙個函式。

如果函式可以通過其他途徑獲得引數值,那麼它就不應該通過引數取得該值。過長的引數列會增加程式閱讀者的理解難度,因此應該盡可能縮短引數列的長度。

introduce parameter object 引入引數物件

某些引數總是同時出現,就以乙個物件取代這些引數。

此重構的價值在於縮短了引數列的長度。

remove setting method 移除設值方法

如果 class 中的某個值域,應該在物件初創時被設值,然後就不再改變,就應該去掉此值域的所有設值函式(setter)

hide method 隱藏某個方法

如果乙個方法,從來沒有被其他任何 class 用到,就將這個方法修改為 private。

經常檢查有沒有可能降低某個方法的可見度(使其更私有化)。

簡化函式呼叫(三)

11,hide method 隱藏函式 現象 有乙個函式,從來沒有被其他任何類用到 做法 將這個函式修改為private。12,replace constructor with factory method 以工廠函式取代建構函式 現象 你希望在建立物件時不僅僅是做簡單的建構動作 做法 將建構函式替...

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

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

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

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