🎯 什麼情境該想到我

當你「想讓領域物件和資料庫互不知道對方,中間由獨立一層負責搬資料」的時候。

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

意圖:在領域物件與資料庫之間插入一層對應器(Mapper),雙向搬移資料並保持兩者互相獨立、彼此無感。

做法要點:

  • Mapper 負責把物件存進資料庫、從資料庫還原成物件;領域物件本身不含任何持久化程式。
  • 領域模型可自由設計,不必遷就資料表結構(可處理阻抗不匹配)。
  • 通常搭配 Identity Map、Unit of Work、Lazy Load 等一起運作。
  • 多數成熟 ORM(如 Hibernate)採此模式。

🧪 我實際套用的紀錄

  • (待填)

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

  • 實作與基礎設施複雜度較高,簡單應用會過度設計。
  • 通常需要框架支援才不至於手工成本過高。
  • 簡單 CRUD、物件貼近資料表時,主動記錄更划算。

🔗 相關工具