模式概述
Facade模式又稱門面模式或外觀模式。為一組具有類似功能的類群,比如類庫,子系統等等,提供一個一緻的簡單的接口。這個一緻的簡單的接口被稱作facade。Facade模式要求一個子系統的外部與其内部的通信必須通過一個統一的Facade對象進行。Facade模式提供一個高層次的接口,使得子系統更易于使用。
、
模式結構
模式讨論
Facade模式為一個複雜子系統提供一個簡單接口,提高子系統的獨立性,在階層化結構中,可以使用Facade模式定義系統中每一層的入口。簡化外部客戶程式和系統間的互動接口。将外部客戶程式的演化和内部子系統的變化之間的依賴互相解耦。
Facade要點總結: (将子系統的變化限制在一個範圍内)
- 1.從客戶程式的角度來看, Façade 模式簡化了整個元件系統的接口。對于内部和外部客戶程式來說, Façade 模式實作了一種解耦的效果——即内部的子系統的任何變化不會影響到 Façade 接口的變化。
- 2.Façade 設計模式更注重從架構的層次去看待整個系統,而不是單個類的層次。Façade 很多時候更是一種架構設計模式。
- 3.Façade 設計模式并非是一個集裝箱,可以任意的放入任何多個對象。Facade模式中元件的内部應該是“互相耦合關系比較大的一系列元件”,而不是簡單的功能集合,以便能夠實作松耦合,高内聚的特性。
相關模式區分:
- Facade模式注重簡化接口。
- Adapter模式注重轉換接口。
- Bridge模式注重分離接口(抽象)與其實作
- Decorator模式注重穩定接口的前提下為對象擴充功能。
模式實作
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以後的筆記潇汀會盡量詳細講解一些相關知識的,希望大家繼續關注我的部落格。
本節筆記到這裡就結束了。
潇汀一有時間就會把自己的學習心得,覺得比較好的知識點寫出來和大家一起分享。
程式設計開發的路很長很長,非常希望能和大家一起交流,共同學習,共同進步。
如果文章中有什麼疏漏的地方,也請大家指正。也希望大家可以多留言來和我探讨程式設計相關的問題。
最後,謝謝你們一直的支援~~~
C++完整個代碼示例(代碼在VS2017下測試可運作)
代碼及相關資料下載下傳位址:
https://gitee.com/arvinxt/DesignPattern