Facade Pattern

把 N 個步驟包裝起來,成為一個功能暴露出,而不是要求使用者了解所有細節

簡介

今天我寫一個購物網站,使用者需要知道的就是 加入追蹤清單、加入購物車、下單、付款...etc。

你總不會跟使用者說「你下單前,要先自己跟系統查詢我的庫存夠不夠查詢我的餘額夠不夠,都可以了你才能點下單喔~」

這些前置作業的確認都應該是系統包裝好,使用者只需要點選「下單」,系統自己會知道下單我要經過哪些流程、要顯示哪些訊息

包裝這些繁瑣功能,提供他需要知道的介面,這種就稱為 Facade Pattern

Pros

  1. 外部不用懂得繁瑣的步驟
  2. 當下訂單的步驟需要加/減,不用每個 Caller 都要修改
  3. Caller 不用相依於所有物件 (ex: 下單需要 StockRepository, UserReposiory, Pay...)
  4. 不用暴露所有功能給外部

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *