🎯 什麼情境該想到我
當你「想用一個物件當某張表的閘道,把該表所有 SQL 集中管理」的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:以一個物件作為整張資料表的閘道,該物件的方法涵蓋對這張表的所有查詢與異動,SQL 全部集中於此。
做法要點:
- 一個 Gateway 實例服務「一整張表」,方法如 find、update、insert、delete。
- 查詢通常回傳 Record Set(記錄集)或資料結構,供上層使用。
- 物件本身不含業務邏輯,只負責資料存取,職責單純。
- 常搭配 Table Module 使用(Table Module 拿記錄集做業務)。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 只封裝資料存取、不放業務邏輯;邏輯要另找地方。
- 若偏好「一物件對一列」的存取風格,改用列資料閘道。
- 使用領域模型並要更徹底解耦時,改用資料對應器。
🔗 相關工具
- 列資料閘道 Row Data Gateway(以「一列」為單位的閘道對照)
- 資料對應器 Data Mapper(更完整解耦領域物件與資料庫)
- 企業應用架構模式