設計模式C 之六(Facade門面模式)

2021-09-30 09:09:28 字數 2476 閱讀 5742

facade門面模式,也是比較常用的一種模式,基本上所有軟體系統中都會用到

。gof

在《設計模式》一書中給出如下定義:為子系統中的一組介面提供乙個一致的介面,

facade

模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。簡單說,就是將複雜的邏輯封裝起來,對外公開簡單的介面,由客戶程式呼叫。這裡舉了乙個傳送郵件的例子,我們理解為電子郵件吧,普通的郵件應該不需要告訴郵局,我們寫的信件內容(呵呵有點較真了)。這個例子更詳細的內容及說明可以參考原作者部落格:cbf4life.cnblogs.com。

9.1.解釋

main(),客戶

iletterprocess,介面

cletterprocessimpl,信件處理的4個函式

cletterpolice,警察

cmodenpostoffice,郵局

注意:將複雜邏輯封裝起來,對外只有乙個簡單的介面。

看**:

上面的圖仍然只是類圖而已,用於幫助理解**中類之間的關係,而不是模式的抽象類圖。cmodenpostoffice封裝了複雜的處理邏輯,對外只有sendletter這個函式介面。使客戶程式容易了解到想要做什麼,應該告訴郵局什麼內容,郵局才能正確的工作。

目前為止,還都是比較簡單的模式,越到後面越複雜。我的理解是當沒有模式的時候,大家編寫**也需要考慮擴充套件性、伸縮性、穩定性等等。那個時候大家寫程式都是自己在摸索經驗,逐漸的才意識到程式應該可以適應需求的變化。於是總結很多方法來,讓程式既能適應變化,又有一定的可靠性。這使得程式設計序更有趣,也更抽象了。所以軟體開發就是提煉和抽象的過程。類似於哲學的提煉,從特殊到一般。

設計模式C 學習筆記之六(Facade門面模式)

facade門面模式,也是比較常用的一種模式,基本上所有軟體系統中都會用到 gof 在 設計模式 一書中給出如下定義 為子系統中的一組介面提供乙個一致的介面,facade 模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。簡單說,就是將複雜的邏輯封裝起來,對外公開簡單的介面,由客戶程式呼叫...

設計模式C 學習筆記之六(Facade門面模式)

facade門面模式,也是比較常用的一種模式,基本上所有軟體系統中都會用到 gof 在 設計模式 一書中給出如下定義 為子系統中的一組介面提供乙個一致的介面,facade 模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。簡單說,就是將複雜的邏輯封裝起來,對外公開簡單的介面,由客戶程式呼叫...

設計模式C 學習筆記之六(Facade門面模式)

facade門面模式,也是比較常用的一種模式,基本上所有軟體系統中都會用到 gof 在 設計模式 一書中給出如下定義 為子系統中的一組介面提供乙個一致的介面,facade 模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。簡單說,就是將複雜的邏輯封裝起來,對外公開簡單的介面,由客戶程式呼叫...