facade模式要求乙個子系統的外部與其內部的通訊必須通過乙個統一的facade物件進行。facade模式提供乙個高層次的介面,使得子系統更易於使用。
就如同醫院的接待員一樣,facade模式的facade類將客戶端與子系統的內部複雜性分隔開,使得客戶端只需要與facade物件打交道,而不需要與子系統內部的很多物件打交道。
facade的幾個要點
從客戶程式的角度來看,facade模式不僅簡化了整個元件系統的介面,同時對於元件內部與外部客戶程式來說,從某種程度上也達到了一種「解耦」的效果——內部子系統的任何變化不會影響到façade介面的變化。
façade設計模式更注重從架構的層次去看整個系統,而不是單個類的層次。façade很多時候更是一種架構設計模式。
façade設計模式並非乙個貨櫃,可以任意地放進任何多個物件。façade模式中元件的內部應該是「相互耦合關係比較大的一系列元件」,而不是乙個簡單的功能集合。
注意區分façade模式、adapter模式、bridge模式與decorator模式。façade模式注重簡化介面,adapter模式注重轉換介面,bridge模式注重分離介面(抽象)與其實現,decorator模式注重穩定介面的前提下為物件擴充套件功能。
a系統有a1, a2, a3等類。客戶端需要呼叫a系統的的a1.dosomething1();a2.dosomething2();a3.dosomething3()來完成某功能。
facade模式的實現模型就是:
a系統:
class a1
class a2
class a3
facade:
public class facade
}test:
public class client
}
facade設計模式
facade 外 觀模式,是一種結構型模式,它主要解決的問題是 元件的客戶和元件中各種複雜的子系統有了過多的耦合,隨著外部客戶程式和各子系統的演化,這種過多的耦合 面臨很多變化的挑戰。在這裡我想舉乙個例子 比如,現在有一輛汽車,我們 客戶程式 要啟動它,那我們就要發動引擎 子系統 1 使四個車輪 子...
Facade設計模式
facade模式也叫外觀模式,是由gof提出的23種設計模式中的一種。facade模式為一組具有類似功能的類群,比如類庫,子系統等等,提供乙個一致的簡單的介面。這個一致的簡單的介面被稱作facade。本文介紹設計模式中的外觀 facade 模式的概念,用法,以及實際應用中怎麼樣使用facade模式進...
Facade 設計模式
目的 解決的問題 客戶端需要乙個簡化的介面來覆蓋複雜的子系統的總體功能。討論facade 設計模式通過乙個單一的介面物件來封裝乙個複雜的子系統。這樣減少了學習子系統複雜的學習曲線。它也實現了不同潛在客戶端的低依賴性和解耦。換句話說,如果facade 是唯一訪問子系統的入口,那麼它將限制一些特性何靈活...