重構手法 Inline Method

2021-05-10 12:58:21 字數 507 閱讀 7855

在函式呼叫點插入函式本體,然後移除該函式。

**大全和重構中都強調過的一點是,為了**的可讀性,不要吝於為幾行**寫乙個函式。這個重構方法,就是針對上述原則的濫用。如果**已經清晰的表達了其意圖,間接層的必要性就不大了。這個時候,就可以把間接層移除。

另外乙個需要此手法的地方時,你有一群不合理的函式,需要對他進行重構,你可以將他們都inline

到呼叫函式中,然後再提煉出一些更小的函式。

間接層有價值,但並不是所有的間接層都有價值。

這個手法是和上面的的手法:extract method

相反的手法,至於何時使用它們,要看的是實際的情況。

1、 檢查函式,確定其不具有多型性。

2、 找出這個函式所有的呼叫點。

3、 將這個函式所有的呼叫點都替換為函式本體。

4、 編譯測試。

5、 刪除此函式。

如果使用此手法需要更改大量的**,那就不要使用它。

如果更改不大,也要首先判斷此間接層的價值是否存在。

重構手法 Inline Method

在函式呼叫點插入函式本體,然後移除該函式。大全和重構中都強調過的一點是,為了 的可讀性,不要吝於為幾行 寫乙個函式。這個重構方法,就是針對上述原則的濫用。如果 已經清晰的表達了其意圖,間接層的必要性就不大了。這個時候,就可以把間接層移除。另外乙個需要此手法的地方時,你有一群不合理的函式,需要對他進行...

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

replace parameter with mehtods 以函式取代引數 物件呼叫某個方法,並將所得結果作為引數,傳遞給另乙個方法。而接受該引數的函式也可以呼叫前乙個函式。就讓引數接受者去除該引數,並直接呼叫前乙個函式。如果函式可以通過其他途徑獲得引數值,那麼它就不應該通過引數取得該值。過長的引...

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

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