複製鏈接
請複製以下鏈接發送給好友

門面模式

鎖定
門面模式,是指提供一個統一的接口去訪問多個子系統的多個不同的接口,它為子系統中的一組接口提供一個統一的高層接口。使得子系統更容易使用。
中文名
門面模式
所屬類別
系統

門面模式實現形式

◇定義一個(或多個)具備所需接口的新類(門面類)
◇新類門户使用原來的系統
◇客户使用門面類對象與原系統打交道

門面模式使用情況

1、客户只需要使用某個複雜系統的子集,或者需要以一種特殊的方式與系統交互時,使用門面模式。
2、當需要跟蹤原系統的使用情況時 ,使用門面模面模式。因為所有對系統的訪問都經過FACADE,所以可以很容易地監視系統的使用 。
3、 希望封裝和隱藏原系統時。
4、編寫新類的成本小於所有人使用和維護原系統使用所需的成本時

門面模式模式優劣

(1)當你要為了一個複雜子系統提供一個簡單接口時。在上面已經描述了原因。
(2)由於抽象類的實現部分與客户程序之間存在着很大的依賴性。引入 facade 將這個子系統與客户以及其他的子系統分離,可以提高子系統的獨立性和可移植性(上面也提到了)。
(3)當你需要構建一個層次結構的子系統時,使用 facade 模式定義子系統中每層的入口點。如果子系統之間是相互依賴的,你可以讓它們僅通過 facade 進行通訊,從而簡化了它們之間的依賴關係。
(4)它可以對客户屏蔽子系統組件,因而減少了客户處理的對象的數目並使得子系統使用起來更加方便。
(5)它實現了子系統與客户之間的松耦合關係,而子系統內部的功能組件往往是緊耦合的。松耦合關係使得子系統的組件變化不會影響到它的客户。 Facade 模式有助於建立層次結構系統,也有助於對對象之間的依賴關係分層。 Facade 模式可以消除複雜的循環依賴關係。這一點在客户程序與子系統是分別實現的時候尤為重要。在大型軟件系統中降低編譯依賴性至關重要。在子系統類改變時,希望儘量減少重編譯工作以節省時間。用 Facade 可以降低編譯依賴性,限制重要系統中較小的變化所需的重編譯工作。 Facade 模式同樣也有利於簡化系統在不同平台之間的移植過程,因為編譯一個子系統一般不需要編譯所有其他的子系統。
(6)如果應用需要,它並不限制它們使用子系統類。因此你可以讓客户程序在系統易用性和通用性之間加以選擇。

門面模式模式缺點

缺點:不符合開閉原則。所謂的開閉原則是軟件工程裏面一個最基本的原則:對擴展開放,對修改關閉。換句話説,你的系統可以提供新的功能模塊而不必進行修改。