設計模式c++學習筆記之七(facade門面模式)
facade門面模式,也是比較常用的一種模式,基本上所有軟體系統中都會用到
。gof
在《設計模式》一書中給出如下定義:為子系統中的一組介面提供乙個一致的介面,
facade
模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。簡單說,就是將複雜的邏輯封裝起來,對外公開簡單的介面,由客戶程式呼叫。這裡舉了乙個傳送郵件的例子,我們理解為電子郵件吧,普通的郵件應該不需要告訴郵局,我們寫的信件內容(呵呵有點較真了)。這個例子更詳細的內容及說明可以參考原作者部落格:cbf4life.cnblogs.com。
9.1.解釋
main(),客戶
iletterprocess,介面
cletterprocessimpl,信件處理的4個函式
cletterpolice,警察
cmodenpostoffice,郵局
注意:將複雜邏輯封裝起來,對外只有乙個簡單的介面。
看**:
上面的圖仍然只是類圖而已,用於幫助理解**中類之間的關係,而不是模式的抽象類圖。cmodenpostoffice封裝了複雜的處理邏輯,對外只有sendletter這個函式介面。使客戶程式容易了解到想要做什麼,應該告訴郵局什麼內容,郵局才能正確的工作。
目前為止,還都是比較簡單的模式,越到後面越複雜。我的理解是當沒有模式的時候,大家編寫**也需要考慮擴充套件性、伸縮性、穩定性等等。那個時候大家寫程式都是自己在摸索經驗,逐漸的才意識到程式應該可以適應需求的變化。於是總結很多方法來,讓程式既能適應變化,又有一定的可靠性。這使得程式設計序更有趣,也更抽象了。所以軟體開發就是提煉和抽象的過程。類似於哲學的提煉,從特殊到一般。
學習筆記之設計模式
設計模式 模式是一種解決問題的思路,它已經適應了一種實踐環境,並且可以使用其他環境 用牛耕地,打井取水 特點在特定場景下有重用性,對相同型別不同問題的環境,其解決方案都有效可傳授性,就是問題出現的機會很多解決問題的方案相同,人們相對可以接受有表示模式的名稱優點 重用設計 系統容易重構 節省時間 五個...
c 設計模式之模板方法模式 學習筆記
模板方法模式原理相對比較簡單,理解上也不存在困難。實際上就是把固定的 步驟 流程封裝起來,然後通過改變每乙個具體步驟來實現不同功能。舉個栗子。因為最近在學習機器視覺 準備入坑 那就以傳統的影象處理步驟為例來講述模板方法模式。比如說 我現在進行影象處理,需要從影象中獲取我想要得到的資訊。那麼,拿到一張...
設計模式學習筆記七 常用設計模式原則總結
前面學習了一部分建立型模式,發現了乙個比設計模式更重要的東西 設計模式原則。對於設計模式來說,為什麼這個模式要這樣解決這個問題,而另乙個模式要那樣,它們背後都遵循的就是永恆的設計原則。可以說,設計原則是設計模式的靈魂。三大基本物件導向設計原則 1.針對介面程式設計,而不是針對實現程式設計 2。優先使...