外觀模式(facade):是為了解決類與類之間的依賴關係的,像spring一樣,可以將類與類之間的關係配置到配置檔案中,而外觀模式就是將他們的關係放在乙個facade類中,降低了類與類之間的耦合度,該模式中沒有涉及到介面。
我們先看兩張結構圖,可以一目了然的了解外觀模式的作用。
未使用外觀模式:
使用了外觀模式:
我們來看一下外觀模式(門面模式)的兩個角色
(2)子系統(subsystem)角色:可以同時有乙個或者多個子系統。每個子系統都不是乙個單獨的類,而是乙個類的集合(如上面的子系統就是由modulea、moduleb、modulec三個類組合而成)。每個子系統都可以被客戶端直接呼叫,或者被門面角色呼叫。子系統並不知道門面的存在,對於子系統而言,門面僅僅是另外乙個客戶端而已。
/**
* 示例:外觀模式,也稱門面模式
* * 優點:為了解決類與類之間的依賴關係,降低了類與類之間的耦合度
* * 該模式中沒有涉及到介面
*/
class memory
public
void
shutdown()
} class cpu
public
void
shutdown()
}
/**
* 作為facade,持有memory、cpu的例項
* * 任務讓computer幫咱們處理,我們無需直接和memory、cpu打交道
* * 這裡有點像去商店裡買東西:咱們買東西只需要到商店去買,而無需去生產廠家那裡買。
* * 商店就可以稱為是乙個facade外觀(門面)模式。
*/
class computer
public
void
startup()
public
void
shutdown()
}
/**
* 客戶端測試類
*/public
class
test
}
Java設計模式 外觀模式
外觀模式 facade 外觀模式的意圖是 為子系統提供乙個介面,便於它的使用。解釋 簡單的說,外觀模式就是封裝多個上層應用需要的方法,使得上層呼叫變得簡單,為上層提供簡單的介面,是設計模式中一種比較簡單的設計思想,但是,也是最常用的一種設計模式。舉例 當你想吃橘子的時候,你需要做那幾件事呢?1 去買...
JAVA設計模式 外觀模式
外觀模式 又稱為門面模式 是一種結構型設計模式。外觀模式的思想是 為子系統的各個模組提供乙個統一的門面,由門面負責對客戶提供服務。外觀模式涉及2個角色 當一次的功能訪問同時呼叫到多個物件時,可以使用外觀模式。例如,在分布式應用中,通過遠端呼叫服務,使用外觀模式可以降低應用程式與服務的互動次數,同時可...
Java設計模式 外觀模式
外觀模式 facade 外觀模式的意圖是 為子系統提供乙個介面,便於它的使用。解釋 簡單的說,外觀模式就是封裝多個上層應用需要的方法,使得上層呼叫變得簡單,為上層提供簡單的介面,是設計模式中一種比較簡單的設計思想,但是,也是最常用的一種設計模式。舉例 當你想吃橘子的時候,你需要做那幾件事呢?1 去買...