外觀模式
一、定義
二、結構
三、案例
四、特點
一、定義
facade(外觀)模式為子系統中的各類(或結構與方法)提供乙個簡明一致的介面,隱藏子系統的複雜性,使子系統更加容易使用。
二、結構
門面(facade)角色 :客戶端可以呼叫這個角色的方法。此角色知曉相關的(乙個或者多個)子系統的功能和責任。在正常情況下,本角色會將所有從客戶端發來的請求委派到相應的子系統去。
子系統(subsystem)角色 :可以同時有乙個或者多個子系統。每個子系統都不是乙個單獨的類,而是乙個類的集合(如上面的子系統就是由systema、systemb、 systemc三個類組合而成)。每個子系統都可以被客戶端直接呼叫,或者被門面角色呼叫。子系統並不知道門面的存在,對於子系統而言,門面僅僅是另外一 個客戶端而已。
三、案例
源**
//子系統(subsystem)角色
public
class systema
}//子系統(subsystem)角色
public
class systemb
}//子系統(subsystem)角色
public
class systemc
}
/**
* 門面(facade)角色
*@author administrator
* */
public
class
facade
// 方法 滿足客戶端需要的功能
public
void
doab()
// 方法 滿足客戶端需要的功能
public
void
doabc()
}
public
class client
}
結果:
客戶1需要的兩個子系統功能
子系統a的功能
子系統b的功能
客戶2需要的三個子系統功能
子系統a的功能
子系統b的功能
子系統c的功能
四、特點
1、外觀模式為複雜子系統提供了乙個簡單介面,並不為子系統新增新的功能和行為。
2、外觀模式實現了子系統與客戶之間的松耦合關係。
3、外觀模式沒有封裝子系統的類,只是提供了簡單的介面。 如果應用需要,它並不限制客戶使用子系統類。因此可以再系統易用性與通用性之間選擇。
4、外觀模式注重的是簡化介面,它更多的時候是從架構的層次去看整個系統,而並非單個類的層次。
設計模式 九 外觀模式
package zzq.designpatterns.structuralpattern 外觀 facade 模式的定義 是一種通過為多個複雜的子系統提供乙個一致的介面,而使這些子系統更加容易被訪問的模式。該模式對外有乙個統一介面,外部應用程式不用關心內部子系統的具體的細節,這樣會大大降低應用程式的...
Java設計模式 外觀模式
外觀模式 facade 外觀模式的意圖是 為子系統提供乙個介面,便於它的使用。解釋 簡單的說,外觀模式就是封裝多個上層應用需要的方法,使得上層呼叫變得簡單,為上層提供簡單的介面,是設計模式中一種比較簡單的設計思想,但是,也是最常用的一種設計模式。舉例 當你想吃橘子的時候,你需要做那幾件事呢?1 去買...
Java設計模式 外觀模式
外觀模式 facade 是為了解決類與類之間的依賴關係的,像spring一樣,可以將類與類之間的關係配置到配置檔案中,而外觀模式就是將他們的關係放在乙個facade類中,降低了類與類之間的耦合度,該模式中沒有涉及到介面。我們先看兩張結構圖,可以一目了然的了解外觀模式的作用。未使用外觀模式 使用了外觀...