設計模式11 結構型模式之外觀模式

2021-09-26 01:27:16 字數 1240 閱讀 2850

定義:

外觀模式

(façade pattern)

,為子系統中的一組介面提供乙個一致的介面,外觀模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。

型別:結構型模式。

適用性:

當子系統非常複雜時,使得客戶呼叫非常麻煩,不便於使用。這個時候就可以使用外觀模式將這些子系統封裝起來,提供乙個統一而簡單介面供客戶端使用。

當需要構建乙個層次結構的子系統時,使用外觀模式可以給子系統定義進入口。

概述:

外觀模式主要依賴「迪公尺特法則」,即儘量減少與其他實體之間的聯絡。例如,使用者和一台電腦。如果使用者想開機,他不需要雲單獨開啟電源,再啟動

cpu,再啟動硬碟電源,再連線顯示器。使用者不需要知道電腦開機完成了哪些工作,使用者只想開機了就可以正常使用電腦就行了。使用者要做的,只是按一下開機鍵,所有的一切都會在這乙個開機動作中自動完成。減少使用者對電腦內部的了解,這樣能夠使得使用者更方便地使用電腦,而且如果電腦開機有問題,也不需要雲從使用者身上找,直接去電腦上面找就可以,能夠更方便地定位問題。

類圖:

參與者:

client

,客戶端,直接與

computer

互動。computer

,由display

,power

,harddisk

幾個子系統構成。並且提供乙個

startup

的介面用來一次性控制所有子系統啟動。

display

,power

,harddisk

,子系統,完成

computer

指派的功能。

示例**:

// c#

namespace 

design11

} class 

display

} class 

harddisk

} // fasade

class 

computer

} // client

class 

program

} }

優點:使得**更加模組化,更方便呼叫以及查詢問題。

注意:如果有多個子系統需要進行通訊時,最好是通過

facade

來中轉。

結構型模式之外觀模式

外觀模式 facade 外觀模式是為了解決類與類之家的依賴關係的,像spring 一樣,可以將類和類之間的關係配置到配置 檔案中,而外觀模式就是將他們的關係放在乙個facade 類中,降低了類類之間的耦合度,該模式中沒 有涉及到介面,看下類圖 我們以乙個計算機的啟動過程為例 我們先看下實現類 pub...

結構型模式之外觀模式

1 外觀模式產生的原因 在軟體開發過程中,程式一般會越做越大,而這樣系統中類及子系統之間的影響會使彼此間的關係變得錯綜複雜即過多的耦合,這就導致了隨著系統中類或子系統發生變化,與之相關聯的子系統或類就需要發生變化。2 外觀模式的定義 外觀模式 facade pattern 就是為子系統中的一組介面提...

Java設計模式 結構型模式之外觀模式

一 前言 今天我們一起來學習外觀模式。外觀模式為使用者提供乙個統一的facade高層介面,我們的使用者面對僅僅就是facade這個介面,這樣使用者使用就顯得簡單,而facde下的子介面也容易擴充套件。自我感覺有點像我們生活中那些一鍵搞定的那種傻瓜式的操作模式。二 外觀模式 概述 隱藏系統的複雜性,並...