Facade 設計模式

2021-09-07 05:52:32 字數 1231 閱讀 3140

目的

解決的問題

客戶端需要乙個簡化的介面來覆蓋複雜的子系統的總體功能。

討論facade 設計模式通過乙個單一的介面物件來封裝乙個複雜的子系統。這樣減少了學習子系統複雜的學習曲線。它也實現了不同潛在客戶端的低依賴性和解耦。換句話說,如果facade 是唯一訪問子系統的入口,那麼它將限制一些特性何靈活性,那樣則可能需要所謂的高階使用者。

facade物件應該是乙個相當簡單的倡導者或是服務商。它不應該成為乙個無所不知的聖人或「上帝」物件。

架構facade 採取了一種"被神秘的事物遮蔽起來的東西"的策略, 然後插入了乙個包裝器來馴服無形的神秘的一團軟體.

舉例facade 定義了統一的,高層次的介面以便於非常容易地使用子系統。舉例,顧客經常會遇到這樣的問題,如從商品目錄中訂購產品。當使用者撥打**並向客戶前台溝通時,這時客戶前台便充當facade的角色,她提供了乙個介面去查詢訂單執行部門,賬單部門和商品運送部門。

總結為子系統或元件確定乙個簡單,統一的介面。

客戶端只能通過facade訪問子系統。

考慮額外的facade是否會增加價值。

規則facade 定義了乙個全新的介面,而介面卡模式使用已存在的介面,介面卡的目的是使兩個存在的介面在一起工作而不是定義乙個全新的介面。

享元模式用來展示多個小的物件,而facade用單一物件來呈現整個子系統。

中介者模式與facade類似,它是存在的class的一種抽象,抽象和集中任意同事物件之間的通訊。它千篇一律的新增功能,並被同事物件所知和引用。相反,facade 為子系統定義了乙個簡單的介面,它並不新增新的功能,並且不被子系統的類所知。

抽象工廠模式可以作為facade的一種替代來隱藏平台指定的類。

facade通常設計成單例模式因為只需要乙個facade物件。

介面卡模式和facade都使用了封裝器,但他們屬於不同的封裝。facade的目的是產生乙個簡單的介面,而介面卡的目的是設計乙個存在的介面。facade通常用來封裝多個物件而介面卡模式封裝乙個物件。facade可以設計乙個從前台到後台乙個單一複雜的物件而介面卡模式封裝系統存在的物件。

facade設計模式

facade 外 觀模式,是一種結構型模式,它主要解決的問題是 元件的客戶和元件中各種複雜的子系統有了過多的耦合,隨著外部客戶程式和各子系統的演化,這種過多的耦合 面臨很多變化的挑戰。在這裡我想舉乙個例子 比如,現在有一輛汽車,我們 客戶程式 要啟動它,那我們就要發動引擎 子系統 1 使四個車輪 子...

Facade設計模式

facade模式也叫外觀模式,是由gof提出的23種設計模式中的一種。facade模式為一組具有類似功能的類群,比如類庫,子系統等等,提供乙個一致的簡單的介面。這個一致的簡單的介面被稱作facade。本文介紹設計模式中的外觀 facade 模式的概念,用法,以及實際應用中怎麼樣使用facade模式進...

Facade 設計模式

目的 解決的問題 客戶端需要乙個簡化的介面來覆蓋複雜的子系統的總體功能。討論facade 設計模式通過乙個單一的介面物件來封裝乙個複雜的子系統。這樣減少了學習子系統複雜的學習曲線。它也實現了不同潛在客戶端的低依賴性和解耦。換句話說,如果facade 是唯一訪問子系統的入口,那麼它將限制一些特性何靈活...