首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 設計模式:門面模式完整指南(一)— 核心定義、醫院實例與結構圖解

     編輯:關於C語言

門面模式核心定義

外部與子系統的通訊**必須透過統一的門面物件**進行。門面模式提供高層介面,使子系統更易使用。

醫院掛號生活實例

醫院 = 子系統,部門 = 內部類別(掛號、門診、劃價、化驗、收費、取藥)。

病人 = 客戶端,需按流程與多部門互動:掛號 → 門診 → 劃價 → 繳費 → 化驗 → 回門診 → 取藥……流程複雜、易出錯。

解決方案:引入接待員(門面)

  • 病人只對接接待員
  • 接待員代為掛號、劃價、繳費、取藥
  • 接待員協調各部門內部流程
  • 病人無需知道醫院內部複雜結構

**接待員 = 門面模式體現**

模式結構

兩大角色

門面角色

  • 客戶端調用的入口
  • 知曉相關子系統功能與職責
  • 將客戶端請求委派給對應子系統

子系統角色

  • 可有一個或多個子系統
  • 每個子系統是類別集合而非單一類別
  • 可被客戶端直接調用,或被門面調用
  • **不知門面存在**;對子系統而言,門面只是另一個客戶端

核心價值

  • 解耦:客戶端與子系統內部實現隔離
  • 簡化:複雜流程封裝為簡單介面
  • 保護:子系統內部變更不外洩
  • 彈性:可為不同客戶端提供不同門面

適用場景預判

  • 遺留系統重構:舊系統複雜難用,包裝門面提供新介面
  • 微服務網關:統一入口路由、聚合、熔斷、限流
  • 第三方庫整合:隱藏複雜 API,提供業務導向介面
  • 分層架構:表現層透過門面訪問業務層/資料層
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved