🎯 什麼情境該想到我
當你「遇到一個類別、函式或繼承層級,它其實沒帶來足夠的價值,卻讓結構多了一層要理解的東西」的時候——常是當初預期它會長大、結果沒有。
⚙️ 怎麼用(步驟 / 公式)
這味道是什麼徵兆:我們用類別、函式等程式元素來組織結構、支援重用與變化;但有些元素只是一個單純的委派、一個沒人再共用的小函式,存在的理由已經消失,只剩下多餘的間接與閱讀成本。
通常用哪些重構手法對治:
- 內聯函式(Inline Function):把沒價值的小函式併回呼叫端。
- 內聯類別(Inline Class):把過小的類別併進使用它的類別。
- 摺疊繼承體系(Collapse Hierarchy):若某層子類/父類已不再有存在意義,將它與相鄰層合併。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 「一個函式只有一行」不代表它沒價值——若它的名字清楚表達了意圖,就值得留著。
- 小而有意義的抽象(提供解釋力或未來擴充點)不是冗員;別把有用的命名層一併內聯掉。
🔗 相關工具
- 誇誇其談通用性 Speculative Generality(為未來預留卻用不上的抽象,也常變成冗員)
- 中間人 Middle Man(只做轉呼叫的類別也是一種冗員傾向)
- 重構