外觀模式 JAVA實現

基本概念

外觀模式(Façade Pattern):他爲子系統中的一組接口提供一個統一的高層接口。使子系

統更容易使用。外觀模式通過一個外觀接口讀/寫子系統接口

的數據資源,而客戶可以通過外觀接口讀取內部資源庫,不與子系統產生交互。

概念解析:當我們寫的程序裏有很多方法,而這些方法的執行又要按一定的順序執行,如

果我們每次調用的時候都按一定的順序調用,我們必須記清順序,這樣來就很

麻煩,每次調用要寫的代碼量也很大。這時我們引入外觀模式,把調用的代碼

封裝到一個類裏面,這個類提供一個接口供我們調用,我們只需要調用這個接

口,就可以實現程序調用。

模式類圖:



                                                                                             外觀模式靜態類圖

使用場合:(1)、一個軟件的複雜度比較高,需要一個更高級別的簡單接口簡化對子系統的操作時。

                   (2)、當使用端與實現類之間有太多的相依性,需要降低使用端與子系統或子系統間的耦合性,增加子系統的獨立性。

                    (3)、當子系統是相互依存的,需要層級化子系統,簡化子系統之間相依性的時候,可以使用外觀模式。

實例分析:製作糖醋排骨

假設製作過程可以分爲以下四步:(這四步必選按順序執行)

1、  第一步。。。。。。

2、  第二步。。。。。。

3、  第三步。。。。。。

4、  第四步。。。。。。

先定義一個製作糖醋排骨的接口,然後在具體實現接口裏的方法。接着在定義一個外觀接口

來,在接口裏面寫一個製作他不敢粗排骨的方法,然後實現該接口。接就可以測試啦。下面

是具體的代碼。


//創建糖醋排骨接口
public interface ISpareribs {
public void prepair();//準備材料
public void presever();//醃製排骨
public void fry();//炸排骨
public void juice();//調汁
}

//實現 ISpareribs裏的具體方法
public class Spareribs implements ISpareribs {
	public void prepair(){
		System.out.println("第一步。。。。。");
	}
	public void presever(){
		System.out.println("第二部。。。。。");
	}
	public void fry(){
		System.out.println("第三部。。。。。。");
	}
	public void juice(){
		System.out.println("第四部。。。。。。");
	}

}
//創建外觀接口
public interface ICookFacade {
	public void cookSpareribs();//製作糖醋排骨的方法
}

//實現外觀   製作糖醋排骨的具體步驟
public class CookFacade implements ICookFacade {
	private final ISpareribs spareribs=new Spareribs();
	public void cookSpareribs(){
		this.spareribs.prepair();
		this.spareribs.presever();
		this.spareribs.fry();
		this.spareribs.juice();
	}

}

//測試程序
public class Client {
	public static void main(String args[]){
		ICookFacade cookFacade=new CookFacade();
		cookFacade.cookSpareribs();
		System.out.println("製作完成!");
	}
}

內容來源
軟件祕笈--設計模式那點事
鄭阿奇   主編


發佈了35 篇原創文章 · 獲贊 8 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章