🎯 什麼情境該想到我

當你「兩個類別其實在做同一類事情,介面(方法名稱、參數)卻長得不一樣,導致無法互相替換」的時候。

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

這味道是什麼徵兆:把功能相近的類別做成一致的介面,才能享受多型帶來的可替換性;介面各說各話,就白白失去互換與統一處理的好處,還逼使用者記兩套用法。

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

  • 改變函式宣告(Change Function Declaration):對齊方法名稱與參數,讓兩者介面一致。
  • 搬移函式(Move Function):把行為搬移,使兩個類別具備對等的能力。
  • 提煉超類(Extract Superclass):當兩者對齊到足夠相似時,抽出共同父類收攏一致介面。

🧪 我實際套用的紀錄

  • (待填)

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

  • 若兩個類別只是「表面像、本質不同、不會互換」,強行統一介面反而製造假抽象。
  • 對齊到底要不要抽父類,取決於它們共通的程度與未來是否真的以多型使用。

🔗 相關工具