門面模式提供乙個高層次的介面,使得子系統更容易使用。
子系統與外部系統的通訊必須經過乙個統一的facade進行處理。
內部系統的互動在facade中進行整合,這樣,對於外部系統的使用者就不用關注內部系統的複雜性。而有facade的存在也降低了內外系統的耦合。
1.內部系統
1.1 內部子系統1--對茶的操作
packagedesignpattern.facade;
public
class
teadeal
public
void
cooktea()
}
1.2 內部子系統2--對水的操作
packagedesignpattern.facade;
public
class
waterdeal
public
void
boilwater()
}
2.外部呼叫
這裡面我們將泡茶的流程設定為:放茶→燒水→泡茶,不採用facade模式的時候,我們會這樣做
packagedesignpattern.facade;
public
class
nofacadetest
}
有了facade,我們會這樣做
2.1 建立facade
packagedesignpattern.facade;
public
class
facade
public
void
cooktea()
public
void
boiltea()
}
2.2 外部呼叫
packagedesignpattern.facade;
public
class
facadetest
}
3.對比分析
在追mm和設計模式這篇神文中,對與facade的形象解釋:
與上面的示例相對應的,facade提供的方法中也有自動檔這個檔位(泡茶),mm不用去關注怎麼去燒水怎麼去倒水,泡茶成了一鍵式,大大的方便了mm呀。
facade設計模式
facade 外 觀模式,是一種結構型模式,它主要解決的問題是 元件的客戶和元件中各種複雜的子系統有了過多的耦合,隨著外部客戶程式和各子系統的演化,這種過多的耦合 面臨很多變化的挑戰。在這裡我想舉乙個例子 比如,現在有一輛汽車,我們 客戶程式 要啟動它,那我們就要發動引擎 子系統 1 使四個車輪 子...
Facade設計模式
facade模式也叫外觀模式,是由gof提出的23種設計模式中的一種。facade模式為一組具有類似功能的類群,比如類庫,子系統等等,提供乙個一致的簡單的介面。這個一致的簡單的介面被稱作facade。本文介紹設計模式中的外觀 facade 模式的概念,用法,以及實際應用中怎麼樣使用facade模式進...
Facade 設計模式
目的 解決的問題 客戶端需要乙個簡化的介面來覆蓋複雜的子系統的總體功能。討論facade 設計模式通過乙個單一的介面物件來封裝乙個複雜的子系統。這樣減少了學習子系統複雜的學習曲線。它也實現了不同潛在客戶端的低依賴性和解耦。換句話說,如果facade 是唯一訪問子系統的入口,那麼它將限制一些特性何靈活...