🎯 什麼情境該想到我
當你「想用物件來表達查詢條件,而不是到處手寫 SQL 字串」的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:把一次資料庫查詢表示成一個物件,讓查詢條件可以用物件方式組合,並與底層資料庫細節解耦。
做法要點:
- 用一個查詢物件承載條件(欄位、運算子、值)與排序等資訊。
- 查詢物件以領域層的語彙描述條件,再由框架翻譯成實際 SQL。
- 條件可程式化地組合、疊加,適合動態查詢畫面。
- 是 GoF 直譯器(Interpreter)模式的一種應用。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 要涵蓋各種 SQL 能力會讓查詢物件本身變得複雜。
- 簡單、固定的查詢直接寫 SQL 更省事。
- 需搭配中繼資料對應才能把物件條件翻成正確 SQL。
🔗 相關工具
- 儲存庫 Repository(內部常用查詢物件組裝查詢)
- 中繼資料對應 Metadata Mapping(提供物件與欄位對應,讓查詢物件能翻成 SQL)
- 企業應用架構模式