facade門面模式,也是比較常用的一種模式,基本上所有軟體系統中都會用到
。gof
在《設計模式》一書中給出如下定義:為子系統中的一組介面提供乙個一致的介面,
facade
模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。簡單說,就是將複雜的邏輯封裝起來,對外公開簡單的介面,由客戶程式呼叫。這裡舉了乙個傳送郵件的例子,我們理解為電子郵件吧,普通的郵件應該不需要告訴郵局,我們寫的信件內容(呵呵有點較真了)。這個例子更詳細的內容及說明可以參考原作者部落格:cbf4life.cnblogs.com。
9.1.解釋
main(),客戶
iletterprocess,介面
cletterprocessimpl,信件處理的4個函式
cletterpolice,警察
cmodenpostoffice,郵局
注意:將複雜邏輯封裝起來,對外只有乙個簡單的介面。
看**:
上面的圖仍然只是類圖而已,用於幫助理解**中類之間的關係,而不是模式的抽象類圖。cmodenpostoffice封裝了複雜的處理邏輯,對外只有sendletter這個函式介面。使客戶程式容易了解到想要做什麼,應該告訴郵局什麼內容,郵局才能正確的工作。
目前為止,還都是比較簡單的模式,越到後面越複雜。我的理解是當沒有模式的時候,大家編寫**也需要考慮擴充套件性、伸縮性、穩定性等等。那個時候大家寫程式都是自己在摸索經驗,逐漸的才意識到程式應該可以適應需求的變化。於是總結很多方法來,讓程式既能適應變化,又有一定的可靠性。這使得程式設計序更有趣,也更抽象了。所以軟體開發就是提煉和抽象的過程。類似於哲學的提煉,從特殊到一般。
Mybatis學習筆記六之設計模式
一 設計模式 在軟體工程領域,設計模式是一套通用的可復用的解決方案,用來解決在軟體設計過程中產生的通用問題。它不是乙個可以直接轉換成源 的設計,只是一套在軟體系統設計過程中程式設計師應該遵循的最佳實踐準則。mybatis原始碼中使用了大量的設計模式,通過觀察設計模式在原始碼中的應用,能夠更深入的理解...
設計模式C 學習筆記之六(Facade門面模式)
facade門面模式,也是比較常用的一種模式,基本上所有軟體系統中都會用到 gof 在 設計模式 一書中給出如下定義 為子系統中的一組介面提供乙個一致的介面,facade 模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。簡單說,就是將複雜的邏輯封裝起來,對外公開簡單的介面,由客戶程式呼叫...
設計模式C 學習筆記之六(Facade門面模式)
facade門面模式,也是比較常用的一種模式,基本上所有軟體系統中都會用到 gof 在 設計模式 一書中給出如下定義 為子系統中的一組介面提供乙個一致的介面,facade 模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。簡單說,就是將複雜的邏輯封裝起來,對外公開簡單的介面,由客戶程式呼叫...