🎯 什麼情境該想到我
當你「不想讓應用程式碼直接依賴訊息收發 API,希望把訊息操作包成普通的方法呼叫」的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:用一個類別封裝訊息系統的存取,對外只提供領域相關的方法,讓應用程式不需要直接接觸訊息 API。
做法 / 結構要點:
- 建立 Gateway 類別,內部處理連線、通道、送收訊息、組 / 解訊息等細節。
- 對外暴露如
submitOrder(order)這類業務方法。 - 應用只呼叫這些方法,完全不感知底層是訊息系統。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 閘道方法可設計成同步(阻塞等回覆)或非同步(帶回呼),要選對。
- 封裝良好時,抽換訊息中介或改走非訊息呼叫都較容易。
- 別在閘道裡摻入業務邏輯,它只負責轉接。
🔗 相關工具
- 訊息對應器 Messaging Mapper(同家族,負責領域物件與訊息互轉)
- 服務啟動器 Service Activator(同家族,接入端的對稱角色)
- 企業整合模式