1.如果你期望為一組類提供一個簡單的接口,可使用Facade(外觀)模式。
2.舉例:
2.1uml模型
2.2源碼
//模拟第一個操作:打開第一個抽屜
public class DrawerOne {
public void open(){
System.out.println("第一個抽屜被打開了");
getKey();
}
public void getKey(){
System.out.println("得到第二個抽屜的鑰匙");
}
}
//模拟第二個操作:打開第二個抽屜
public class DrawerTwo {
public void open(){
System.out.println("第二個抽屜被打開了");
getFile();
}
public void getFile(){
System.out.println("得到這個重要檔案");
}
}
//采用Facade模式對以上操作進行封裝
public class DrawerFacade {
private DrawerOne darwerOne=new DrawerOne();
private DrawerTwo darwerTwo=new DrawerTwo();
public void open(){
darwerOne.open();
darwerTwo.open();
}
}
//Client隻需要通過DrawerFacade類進行複雜操作
public class Client {
public static void main(String []args){
DrawerFacade drawer=new DrawerFacade();
drawer.open();
}
}
3.總結:為子系統中的一組接口提供一個統一接口。Facade模式定義了一個更高層的接口,使子系統更加容易使用。使用一種比原有方式更簡單的辦法與系統互動。外觀類通常是一個可配置、可複用的類。
4.參考:http://www.blogjava.net/supercrsky/articles/202854.html