🎯 什麼情境該想到我

當你「要整合一個外部系統、遺留系統或第三方 API,但不想讓它那套(可能很糟或跟你格格不入的)模型滲進來污染你乾淨的領域模型」的時候。你想在中間加一層翻譯把它擋在外面。

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

意圖:在下游與上游之間建立一層隔離+翻譯層,把上游的模型轉換成下游自己的模型。上游的概念與變動被擋在這層之外,保護內部模型的純淨與穩定。

做法要點:

  1. 定義你自己的內部模型與介面(你「想要」的樣子),與上游脫鉤。
  2. 在邊界建立翻譯層,將上游的資料/概念雙向轉換成內部模型(常用 Facade/Adapter,必要時搭配 Service)。
  3. 內部程式只跟自己的模型與這層介面打交道,絕不直接依賴上游型別。
  4. 上游一變,只改翻譯層這一處,內部模型不受波及。

🧪 我實際套用的紀錄

  • (待填)

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

  • 翻譯層要花額外開發與維護成本;若上游模型本來就乾淨又契合,追隨者可能更划算。
  • 這是防禦性投資,回報在「上游多變或很糟」時才明顯;上游穩定良好時可能過度設計。
  • 翻譯邏輯若做得太厚重,本身也可能變成難維護的一坨,要控制它的複雜度。

🔗 相關工具