重構 - 改善既有程式的設計 - Temporary Field
April 11, 2020這篇文章討論《重構 - 改善既有程式的設計》裡的3.14 - Temporary Field
圖片以及程式碼來源自重構 - 改善既有程式的設計
Temporary Field
什麼是暫時的欄位呢 就是一個物件裡面的某些欄位 只有在特定的時候有用 在其他的時候這些欄位是沒有用的 這樣就很容易會讓人迷惑
常見的例子是 當你某個函式要跑一個演算法時 需要很多變數 可是你又不想把所有變數都當函式的參數丟給函式
所以你就把這些變數都塞給某個物件 成為這個物件的欄位們
但在演算法跑完之後 這些欄位就沒有用了 其他人在其他地方看到這些欄位 會非常迷惑
解法
Extract Class
把那些只有特定情況會用到的欄位們 提煉到一個新的類別
Replace Method with Method Object
或者你也可以用我們的大招 在同一個類別裡新增一個類別 這樣也比較不會讓人疑惑