概念
為系統中的一組接口提過一個一致的界面,此模式定義一個高層接口,這個接口使得這一子系統更加容易使用.
舉個栗子
不懂股票的人,將錢交給理財基金,讓他們負責購買股票,并抽取一定的傭金,而對于人來說,理財基金就是更高層的接口,負責一致的買和賣.
來看看UML圖
//股票
public class Stock1 {
public void buy() {
System.out.println("Buy Stock1");
}
public void sell() {
System.out.println("Sell Stock1");
}
}
//國債
public class Stock2 {
...
}
//債券
public class Stock3 {
...
}
定義理財基金,高層接口
public class Facade {
Stock1 stock1;
Stock2 stock2;
Stock3 stock3;
public Facade(){
stock1 = new Stock1();
stock2 = new Stock2();
stock3 = new Stock3();
}
public void buy(){
stock1.buy();
stock2.buy();
stock3.buy();
}
public void sell(){
stock1.sell();
stock2.sell();
stock3.sell();
}
}
使用
Facade facade = new Facade();
facade.buy();
facade.sell()
Android中的外觀模式
外觀模式在Android中也非常常見,使用率非常高,那就是Context
,當我們去獲取各式各樣的資源文件時,以及對四大組件進行操作,使用一些系統的服務,都可以使用Context
就可以去獲取,Context
為我們提供了一鍵式服務,當然是外觀模式了.(源碼比較簡單,就不分析了)Context
就是外觀模式中的高層接口.
結語
有錯請指出,謝謝.
學無止境.