🎯 什麼情境該想到我
當你「有一堆細粒度物件,跨網路呼叫次數太多導致很慢,想用一個粗粒度介面包起來」的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:為一組細粒度物件提供一個粗粒度的遠端介面,減少跨程序/跨網路的呼叫次數。
做法要點:
- 遠端呼叫成本高(序列化、網路延遲),細粒度介面在遠端會很慢。
- 建立一個外觀物件,把多個細瑣操作聚合成少數幾個粗粒度方法。
- 外觀本身不含領域邏輯,只做聚合與轉發;領域邏輯留在原本的細粒度物件。
- 一次遠端呼叫就完成一組相關操作,往返大幅減少。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 若呼叫在同一程序內(無遠端邊界),不需要這層。
- 別把領域邏輯塞進外觀,否則會變成貧血又難維護。
- 通常與資料傳輸物件搭配,一次把資料整包傳回。
🔗 相關工具
- 資料傳輸物件 Data Transfer Object(遠端外觀方法常回傳/接收 DTO,一次傳完資料)
- 企業應用架構模式