Design Pattern — Facade

Vivi Wang
Feb 12, 2021

--

Facade (外觀模式) 是軟體開發中很常見的方式,有些時候,因系統初期沒有好好規劃架構,導致當系統越來越複雜時,內部類別依賴性高,查找錯誤難度也變高。

此時常見的初步重構方式便是將系統切分為多個子系統,子系統間盡量降低依賴性,子系統內允許物件擁有較緊密關聯。

基本介紹

外觀模式(Facade pattern),是軟體工程中常用的一種軟體設計模式,它為子系統中的一組介面提供一個統一的高層介面,使得子系統更容易使用

其實 Facade 的概念非常單純,以下這張圖可以概括此 Pattern 想做的事情,提供一個給子系統外部存取的介面 (下圖綠色處),讓外部對於子系統內元件的相依性降低。

參考 GoF 書中圖繪製,左為套 Facade 前,右為套用後

套用步驟

如同 Teddy 在搞笑談軟工中提到的一樣,其實步驟非常簡單

  1. 定義 Facade
  2. 修改 Client 端直接呼叫的程式碼,改成呼叫 Facade

使用情境

  • 系統設計初期,規劃資料存取層、業務邏輯層與表示層的層與層之間建立 Facade,為複雜的子系統提供簡單介面供外部使用。
  • 重構舊的大型系統時,直接對舊系統做修改有一定風險,此時新功能可以套用 Facade 產生的介面,而原有程式可以再慢慢移植到新的介面上供外部使用。

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Vivi Wang
Vivi Wang

Written by Vivi Wang

一些簡單基礎小筆記

No responses yet

Write a response