門面模式核心定義
外部與子系統的通訊**必須透過統一的門面物件**進行。門面模式提供高層介面,使子系統更易使用。
醫院掛號生活實例
醫院 = 子系統,部門 = 內部類別(掛號、門診、劃價、化驗、收費、取藥)。
病人 = 客戶端,需按流程與多部門互動:掛號 → 門診 → 劃價 → 繳費 → 化驗 → 回門診 → 取藥……流程複雜、易出錯。
解決方案:引入接待員(門面)
- 病人只對接接待員
- 接待員代為掛號、劃價、繳費、取藥
- 接待員協調各部門內部流程
- 病人無需知道醫院內部複雜結構
**接待員 = 門面模式體現**
模式結構

兩大角色
門面角色
- 客戶端調用的入口
- 知曉相關子系統功能與職責
- 將客戶端請求委派給對應子系統
子系統角色
- 可有一個或多個子系統
- 每個子系統是類別集合而非單一類別
- 可被客戶端直接調用,或被門面調用
- **不知門面存在**;對子系統而言,門面只是另一個客戶端
核心價值
- 解耦:客戶端與子系統內部實現隔離
- 簡化:複雜流程封裝為簡單介面
- 保護:子系統內部變更不外洩
- 彈性:可為不同客戶端提供不同門面
適用場景預判
- 遺留系統重構:舊系統複雜難用,包裝門面提供新介面
- 微服務網關:統一入口路由、聚合、熔斷、限流
- 第三方庫整合:隱藏複雜 API,提供業務導向介面
- 分層架構:表現層透過門面訪問業務層/資料層