1.概念
為子系統中的一組接口提供一個統一接口。Facade模式定義了一個高層接口,這個接口使得這子系統更容易使用。
2.UML
3.代碼
下面是一個具體案例的代碼:
package facade;
class DrawerOne {
public void open(){
System.out.println("第一個抽屜被打開了");
getKey();
}
public void getKey(){
System.out.println("得到第二個抽屜的鑰匙");
}
}
class DrawerTwo{
public void open(){
System.out.println("第二個抽屜被打開了");
getFile();
}
public void getFile(){
System.out.println("得到這個重要文件");
}
}
class DrawerFacade{
DrawerOne darwerOne=new DrawerOne();
DrawerTwo darwerTwo=new DrawerTwo();
public void open(){
darwerOne.open();
darwerTwo.open();
}
}
public class DrawerClient{
public static void main(String []args){
DrawerFacade drawer=new DrawerFacade();
drawer.open();
}
}
4.應用場景
1)為一個復雜子系統提供一個簡單接口。
2)提高子系統的獨立性。
3)在層次化結構中,可以使用Facade模式定義系統中每一層的入口。
--------------------------------------------------------------------
PS: 歡迎關注公眾號"Devin說",會不定期更新Java相關技術知識。
--------------------------------------------------------------------