🎯 什麼情境該想到我

當你「每加一個新功能/新類型,就得回頭改一堆既有程式(還常改壞)」,或 if-else/switch 越加越長時。

⚙️ 怎麼用

對擴充開放,對修改關閉:新增行為靠「加新程式」,而不是「改舊程式」。

  1. 找出會不斷新增類型/行為的變化點。
  2. 抽成介面,讓既有流程依賴介面(見 工具-針對介面編程)。
  3. 新增功能=新增一個實作類別,既有程式碼不動。
    • 例:新增付款方式=加一個 PaymentMethod 實作,不改結帳流程。

🧪 我實際套用的紀錄

  • 2026-07-14:(待填)

⚠️ 注意

  • 不可能對「所有」變化都開放;只針對你判斷會反覆變的軸線設計(見 工具-封裝變化點),否則過度設計。

🔗 相關工具