C 設計模式之8 外觀模式

2022-01-11 23:08:41 字數 1239 閱讀 5460

外觀模式和介面卡模式一樣,都實現了介面改變,介面卡模式是讓乙個介面轉化成另外乙個介面,而外觀模式是讓介面變得更簡單。

先來看一下需求:

外觀模式沒有封裝子系統的類,外觀只是提供乙個統一的介面,對子系統的類進行排程。如果有必要,還是可以直接操作子系統的類,而不是通過外觀。外觀讓子系統的類使用起來更方便。我們也可以根據需要為子系統建立多個外觀。

外觀不只是簡化了介面,也將客戶從元件的子系統中解耦。外觀和介面卡可以包裝許多類,但是外觀的意圖是簡化介面,而介面卡的意圖是將介面轉化成不同的介面。

介面卡模式是「改變」介面符合客戶期望,而外觀模式是給子系統提供乙個簡化的介面。

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

**就不放了,非常簡單,就是建立乙個類,類中的各個方法封裝了對子系統的使用邏輯。

此外,這個設計模式引出了乙個物件導向的設計原則:最少知識原則——最少知識原則的定義是只和你的密友交談。這個原則希望我們在系統的設計中不要讓太多的類耦合在一起,免得修改系統中的一部分,會影響到其他部分。如果許多類之間相互依賴,那麼這個系統就會變成乙個易碎的系統,它需要花許多成本維護,也會因為太負責而不容易被他人了解。

這個原則指導我們如何避免贏得太多物件和影響太多物件——一般來說,就任何物件而言,我們只應該呼叫屬於以下範圍的方法:

①該物件本身

②被當作方法的引數而傳遞進來的任何物件

③此方法所建立或例項化的任何物件

④物件的任何元件

在oo中,只有乙個朋友是一件好事情!有多個朋友意味著有多個依賴,各種依賴錯綜複雜,就會導致「牽一髮而動全身」。

設計模式8 外觀模式

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

設計模式 8 外觀模式

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

Java設計模式8 外觀模式

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