Facade Pattern 意圖:為子系統的一組介面提供統一的高層介面,使子系統更容易使用。
三層架構中的 DAL (Data Access Layer) 也是典型 Facade,讓 BLL 不需直接面對 ADO.NET 複雜機制。
原始狀況:買票機只收硬幣,旅客若只有鈔票,必須先用換鈔機換成硬幣,再去買票機買票 —— 兩步驟、兩介面。
int main() {
BillToCoinMachine Machine1;
Coin coin = Machine1.getCoin(Bill(100));
CoinToTicketMachine Machine2;
Machine2.getTicket(coin);
}
客戶端必須親自協調兩台機器,耦合度高。
將引入 TicketMachineFacade 封裝換鈔與買票流程,讓客戶端只需呼叫單一介面即可完成購票。