🎯 什麼情境該想到我
當你「想讓領域物件自己內建存取資料庫的方法,物件幾乎等於一列」的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:讓一個物件同時包住一列資料、該列的存取方法,以及部分領域邏輯,物件自己負責存取自己。
做法要點:
- 物件欄位對應資料表欄位;物件上直接有 insert、update、delete、find 等方法。
- 物件結構通常與資料表結構高度一致(一物件對一列)。
- 開發快、直覺,很多框架(如 Rails ActiveRecord)採用此模式。
- 適合業務邏輯不太複雜、且與資料庫結構相符的情況。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 混合了持久化與業務邏輯,領域複雜時耦合會拖累維護。
- 物件結構與資料表結構若差異大,會很綁手。
- 領域模型複雜、想解耦資料庫時,改用資料對應器。
🔗 相關工具
- 列資料閘道 Row Data Gateway(相似但刻意不放業務邏輯)
- 資料對應器 Data Mapper(複雜領域時更乾淨的替代方案)
- 企業應用架構模式