Java設計模式(九) 外觀模式

2021-09-23 23:06:55 字數 1413 閱讀 4110

外觀模式

一、定義

二、結構

三、案例

四、特點

一、定義

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類中,降低了類與類之間的耦合度,該模式中沒有涉及到介面。我們先看兩張結構圖,可以一目了然的了解外觀模式的作用。未使用外觀模式 使用了外觀...