外觀模式及其改進(二) 抽象外觀類的引入

2022-08-01 20:30:21 字數 647 閱讀 9033

在通用的外觀模式結構圖中,如果需要增加、刪除或更換與外觀類互動的子系統類,必須修改外觀類或客戶端的源**,這將違背開閉原則,因此我們可以通過引入抽象外觀類

對系統進行改進,在一定程度上解決該問題。在引入抽象外觀類之後,客戶端可以針對抽象外觀類進行程式設計,對於新的業務需求,不需要修改原有外觀類,而對應增

加乙個新的具體外觀類,由新的具體外觀類來關聯新的子系統物件,同時通過修改配置檔案來達到不修改任何源**並更換外觀類的目的。引入抽象外觀類的外觀模

式結構如圖4所示:

圖4 引入抽象外觀類的外觀模式結構圖

如果需要將圖3中的加密類ciphermachine改為另乙個加密類,例如newciphermachine,勢必會導致外觀類encryptfacade源**發生修改,違反開閉原則。通過引入抽象外觀類,重構後的系統設計方案如圖5所示:

圖5

引入抽象外觀類之後的檔案加密模組結構圖

在圖5中,客戶類client針對抽象外觀類abstractencryptfacade進行程式設計,可以將具體外觀類類名儲存在xml等格式的配置檔案中,如下**所示:

[html]view plain

copy

二 外觀模式

外觀模式也比較簡單。外觀模式 facade 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易的使用。通過上面對外觀模式的描述,很容易就想到zuul閘道器,通過閘道器的一系列呼叫來達到實現某個目標的需求。外觀模式也是一樣的。外界的呼叫者不用知道呼叫的具體...

狀態模式二 外觀模式

外觀模式 為子系統定義一組統一的介面,這個高階的介面會讓子系統更容易被使用 比如汽車內部有許多子系統 引擎系統 傳動系統 懸吊系統 等 駕駛者只需要通過高階介面 方向盤 踏板 儀錶盤 就可以輕易操控汽車 優點 1,節省時間,減少系統耦合度 系統構建時間 2,易於分工開發,開發者只需要了解對方負責系統...

設計模式(二) 外觀模式 Facade

設計模式 二 外觀模式 facade 為了解決子系統外部的客戶端在使用子系統的時候,既能簡單地使用這些子系統內部的模組功能,而又不用客戶端去與子系統內部的多個模組互動的問題。為子系統中的一組介面提供乙個一致的介面,外觀模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。外觀模式就是通過引入乙...