為子系統中的一組介面提供乙個一致的介面。facade模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。外觀模式,即facade,是乙個比較簡單的模式。它的基本思想如下:
如果客戶端要跟許多子系統打交道,那麼客戶端需要了解各個子系統的介面,比較麻煩。如果有乙個統一的「中介」,讓客戶端只跟中介打交道,中介再去跟各個子系統打交道,對客戶端來說就比較簡單。所以facade就相當於搞了乙個中介。
我們以註冊公司為例,假設註冊公司需要三步:
向工商局申請公司營業執照;
在銀行開設賬戶;
在稅務局開設納稅號。
以下是三個系統的介面:
// 工商註冊:
public class adminofindustry
}// 銀行開戶:
public class bank
}// 納稅登記:
public class taxation
}
如果子系統比較複雜,並且客戶對流程也不熟悉,那就把這些流程全部委託給中介:
public class facade {
public company opencompany(string name) {
company c = this.admin.register(name)
結構型模式 外觀
結構圖 模式說明 擴充套件點在subsystem集合。增加乙個具體的子系統後,可能但不一定需要修改fa ade外觀類。客戶端需要知道具體哪乙個fa ade外觀類。客戶端不需要關係到底哪個subsystem類負責fa ade外觀類的何種任務。外子系統中的一組介面提供乙個一致的介面,外觀模式定義了乙個高...
結構型模式 外觀模式
外觀模式 facade 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。外觀模式將客戶端與子系統的內部複雜性進行分隔開,使得客戶端只需要與外觀物件打交道,而不需要與子系統內部的很多物件打交道。外觀模式的目的在於減少系統的複雜程度。在物件導向軟體系...
外觀模式 結構型模式
1 基礎知識 定義 提供了乙個統一的介面,用來訪問子系統中的一群介面。特徵 定義了乙個高層介面讓子系統更容易使用 使用場景 子系統複雜,增加外觀模式提供呼叫介面 當構建多層系統時利用外觀物件作為每層的入口簡化層間呼叫。優點 簡化了呼叫過程,無需深入了解子系統 減少系統依賴 鬆散耦合 符合迪公尺特原則...