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

我的設計模式之旅[5]:Facade Pattern 概念與捷運買票範例 (C++)

     編輯:關於C語言

Facade Pattern 意圖:為子系統的一組介面提供統一的高層介面,使子系統更容易使用。

兩大典型應用場景

  1. 將程序導向系統包裝成 OO(如 MFC 封裝 Win32 API)
  2. 將複雜 OO 系統再封裝簡化(如 .NET Enterprise Library 封裝 .NET Framework)

三層架構中的 DAL (Data Access Layer) 也是典型 Facade,讓 BLL 不需直接面對 ADO.NET 複雜機制。

範例情境:捷運買票機

原始狀況:買票機只收硬幣,旅客若只有鈔票,必須先用換鈔機換成硬幣,再去買票機買票 —— 兩步驟、兩介面。

類別圖

無 Facade 版程式碼

int main() {
    BillToCoinMachine Machine1;
    Coin coin = Machine1.getCoin(Bill(100));
    CoinToTicketMachine Machine2;
    Machine2.getTicket(coin);
}

客戶端必須親自協調兩台機器,耦合度高。

下篇預告

將引入 TicketMachineFacade 封裝換鈔與買票流程,讓客戶端只需呼叫單一介面即可完成購票。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved