1.概念
外觀模式(facade):為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。
2.理解:
外觀模式主要解決系統內和系統外的通訊問題,一般是系統外需要訪問系統內的多個方法(介面),單項的居多,類似於系統內為系統外提供服務那樣。增加的facade類裡面會包括所有被訪問的類物件,然後統一提供乙個介面供外面訪問。
3.總結
外觀模式是很簡單的設計模式。但是需要和**模式、中介模式區分。**模式是為單個型別提供**用的,封裝了被**類。中介模式是系統內部的類之間的通訊問題,每個需要通訊的類必須知道中介的存在。但是外觀模式中,每個系統內部的類可不需知道facade類的存在(因為經常是單向)。
3.1 中介者模式:a,b之間的對話通過c來傳達。a,b可以互相不認識(減少了a和b物件間
的耦合),一般是a和b中都有c,c中也有a和b,但是a和b互相不包含。
3.2 **模式:a要送b禮物,a,b互相不認識,那麼a可以找c來幫它實現送禮物的願望(封裝了a物件)。
3.3 外觀模式:a和b都要實現送花,送巧克力的方法,那麼我可以通過乙個抽象類c實現送花送巧克力的方法(a和b都繼承c)。(封裝了a,b子類)
**模式和外觀者模式這兩種模式主要不同就是**模式針對的是單個物件,而外觀模式針對的是所有子類。
設計模式 對外觀模式的思考
外觀模式 客戶端與子系統類之間的通訊是通過乙個外觀角色進行的,外觀角色為客戶端和子系統提供了統一的介面,方便客戶端的使用和子系統的拓展。現在需要設計乙個檔案加密的系統,該系統包含三個部分,第一部分是讀取檔案中的明文,第二是給明文進行加密,第三是將加密的資訊存放到加密的檔案中。以上的描述對應著三個類 ...
設計模式學習 外觀模式
很久沒有拿出時間來寫一些東西了。最近在學習設計模式的內容,收益匪淺,打算寫乙個系列。將複雜的子系統內容,整合成簡約 學習成本低的介面。我們早晨出門上班,雖然每天都做得沒有感覺複雜,但是在 中體現,就會是這樣 breadmarker.make door.open dorr.close car.star...
設計模式學習 外觀模式
facade模式也叫外觀模式,是由gof提出的23種設計模式中的一種。facade模式為一組具有類似功能的類群,比如類庫,子系統等等,提供乙個一致的簡單的介面。這個一致的簡單的介面被稱作facade 外部與乙個子系統的通訊必須通過乙個統一的外觀物件進行,為子系統中的一組介面提供乙個一致的介面,外觀模...