1.模式定义:为子系统中的一组接口提供一个一致的接口,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用
class System1{
public void doSomeThing(){
System.out.println("System1 working...");
};
}
class System2{
public void doSomeThing(){
System.out.println("System2 working...");
};
}
class System3{
public void doSomeThing(){
System.out.println("system3 working...");
};
}
class Facade{
static System1 system1 = new System1();
static System2 system2 = new System2();
static System3 system3 = new System3();
public static void doSomeThing(){
system1.doSomeThing();
system2.doSomeThing();
system3.doSomeThing();
}
}
public class FacadeTest {
public static void main(String[] args) {
Facade.doSomeThing();
}
}
应用场景
1.当您需要使用复杂子系统的有限但直接的接口时,请使用Facade模式。
2.当您想要将子系统组织成层时,请使用Facade。
优点:
简化客户端的调用
源码中的经典应用
1org.apache.catalina.connector.RequestFacade