外觀模式(facade),為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。外觀模式將客戶端與子系統的內部複雜性進行分隔開,使得客戶端只需要與外觀物件打交道,而不需要與子系統內部的很多物件打交道。
外觀模式的目的在於減少系統的複雜程度。在物件導向軟體系統中,類與類之間的關係越多,可能會導致耦合性變大,這樣的話,系統在維護和修改時都缺乏靈活性。
外觀模式不能很好的限制客戶使用子系統類,如果對客戶訪問子系統類做太多的限制將降低系統的可變性。
當要為乙個複雜子系統提供乙個簡單的介面時。
facade表示外觀角色,客戶端可以呼叫這個角色的方法,此角色知道相關的(乙個或多個)子系統的功能和責任。將所有從客戶端發來的請求委派到相應的子系統中去,傳遞給子系統物件進行處理。subsystem表示子系統角色,乙個系統可以有乙個或多個子系統角色。處理有外觀類傳遞過來的任務。
subsystem_1subsystem_2public class subsystem_1
}
subsystem_3public class subsystem_2
}
subsystem_4public class subsystem_3
}
public class subsystem_4
}
public class facade
public void showmethod()
}
public class client
}
沒有什麼好說的,就是將子系統類方法的呼叫整到外觀類中了。子系統方法1
子系統方法2
子系統方法3
子系統方法4
外觀模式 結構型模式
1 基礎知識 定義 提供了乙個統一的介面,用來訪問子系統中的一群介面。特徵 定義了乙個高層介面讓子系統更容易使用 使用場景 子系統複雜,增加外觀模式提供呼叫介面 當構建多層系統時利用外觀物件作為每層的入口簡化層間呼叫。優點 簡化了呼叫過程,無需深入了解子系統 減少系統依賴 鬆散耦合 符合迪公尺特原則...
外觀模式 結構型模式
1 我們可以把幕布 投影儀 折疊椅,看成乙個小的系統,它裡面又有具體的相關操作。2 我們有乙個客戶端,比如開始的時候。我們就去呼叫幕布的開啟方法,投影儀的開啟方法,折疊椅的開啟方法。3 同理我們的中間 結束也都是呼叫相對應的操作方法。這樣存在乙個問題就是 外觀模式理解起來很簡單,就是我們對其提出乙個...
結構型模式 外觀模式
收藏 深入淺出外觀模式 外觀模式定義如下 外觀模式 為子系統中的一組介面提供乙個統一的入口。外觀模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。外觀模式又稱為門面模式,它是一種物件結構型模式。外觀模式是迪公尺特法則的一種具體實現,通過引入乙個新的外觀角色可以降低原有系統的複雜度,同時降低...