🎯 什麼情境該想到我

當你「要做一個小改動,卻得同時到很多不同的類別或檔案裡各改一點」的時候——而且很容易漏掉其中一處。

⚙️ 怎麼用(步驟 / 公式)

這味道是什麼徵兆:某一個決策或概念被打散、灑遍程式各處(像霰彈打出去的碎片),導致每次改它都要四處奔波,還很難確定改全了。這與「發散式變化」相反:霰彈是「一種變化、多處要改」。

通常用哪些重構手法對治:

  • 搬移函式(Move Function)/搬移欄位(Move Field):把散落各處、屬於同一件事的碼與資料集中到同一個模組。
  • 函式組合成類別(Combine Functions into Class)/組合成轉換(Combine Functions into Transform):把處理同一資料的相關函式聚在一起。
  • 內聯函式/內聯類別(Inline Function / Inline Class):若碎片本就過度切割,先合回一處再重新切得更合理。

目標:讓每一種變化都對應到「一個要改的地方」。

🧪 我實際套用的紀錄

  • (待填)

⚠️ 注意 / 什麼時候不適用

  • 集中之後要小心別讓那個模組吸收太多職責,反而變成「發散式變化」或「過大類別」——兩者要取得平衡。

🔗 相關工具