🎯 什麼情境該想到我

當你「發現同樣的幾個資料項目老是黏在一起出現」的時候——好幾個類別都有這組欄位、好幾個函式簽名都帶著這組參數(像 startDate/endDate、street/city/zip)。

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

這味道是什麼徵兆:這些總是成群結隊的資料,其實是一個尚未被命名的概念在喊「我想變成一個物件」。判斷小技巧:試著刪掉其中一個資料項,若剩下的就失去意義,代表它們本該是一體。

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

  • 提煉類別(Extract Class):把這組資料變成一個有名字的類別(如 DateRange)。
  • 引入參數物件(Introduce Parameter Object):把成群的參數包成一個物件傳遞。
  • 保持物件完整(Preserve Whole Object):之後傳遞時直接傳這個物件,而非再拆開。

好處不只縮短參數列——成物件後,行為(如「範圍是否重疊」)也有地方可放,往往能連帶消除重複。

🧪 我實際套用的紀錄

  • (待填)

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

  • 只有一兩個地方偶爾一起出現、且未來不會成長,可能還不值得為它建類別。
  • 確認這組資料真的表達「同一個概念」再合併,別把碰巧相鄰的無關值硬綁一起。

🔗 相關工具