8 外觀模式

2022-06-06 02:09:10 字數 888 閱讀 3156

外觀模式(facade)定義:提供了乙個統一的介面,用來訪問子系統中的一組介面。此模式定義了乙個高層介面,讓子系統更易於使用。

類圖如下:

facade類封裝了subsystem的方法或介面,client只需與facade互動。比如,如果sybsystem是單支**,那麼**就可以認為是他們的facade,因為一支**背後有好多支**,對使用者來說,**也比**省心。

外觀模式的使用場合有如下幾種情況:

1 在設計階段,應該有意識地將不同的層分開,比如三層架構,在層與層之間就可以使用外觀模式;

2 在開發階段,子系統因為不斷的重構演化而變得複雜,可以用外觀模式簡化呼叫;

3 維護舊系統時,對於內部一些重要的功能,這些功能和背後的**都比較複雜,基於這些功能開發的時候,可以使用外觀模式。

外觀模式與介面卡模式的比較:

外觀模式和介面卡模式都可以封裝很多個類。但兩者的意圖不同,外觀模式的意圖是簡化介面,而介面卡模式的意圖是將介面轉換成不同的介面。

此外,外觀模式還可以附加「聰明」的功能,因為facade內部可以控制對子系統的呼叫方式,就像**管理人的操作多支**一樣。

德墨忒爾法則

德墨忒爾法則(law of demeter)也叫最少知識,如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某乙個方法的話。類應當降低成員的訪問許可權,除非有必要讓外部訪問的成員,否則都設定為private,而需要公開的字段,就要用屬性來封裝。

德墨忒爾法則強調類與類之間的松耦合,松耦合的設計可以促進復用。

設計模式8 外觀模式

為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這個子系統更加容易使用。public class subsystemone public class subsystemtwo public class subsystemthree public class subsys...

設計模式 8 外觀模式

定義 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得子系統更加容易使用。使用場景 當子系統的介面過於複雜時,比如經典的三層架構,就需要考慮在資料訪問層和業務邏輯層,業務邏輯層和表示層的層與層之間建立外觀。以達到簡化目的,降低耦合 實現 建立外觀類,聚合子系統各個介面,...

Java設計模式8 外觀模式

外觀模式隱藏了系統的複雜性,並向客戶端提供了乙個可以訪問系統的介面。這種型別的設計模式屬於結構性模式。為子系統中的一組介面提供了乙個統一的訪問介面,這個介面使得子系統更容易被訪問或者使用。1 外觀角色 外觀模式的核心。它被客戶角色呼叫,它熟悉子系統的功能。內部根據客戶角色的需求預定了幾種功能的組合。...