1)为一个复杂子系统提供一个简单接口。屏蔽了复杂系统的实现的细节,对外提高了更简便的操作
2)提高子系统的独立性。
3)在层次化结构中,可以使用Facade模式定义系统中每一层的入口。
/**
* 子系统1
* @author Administrator
*
*/
public class SubSystem1 {
public void open(){
System.out.println("打开第一个抽屉");
getKey();
}
private void getKey() {
System.out.println("得到第二个抽屉钥匙");
}
}
------------------------------------------------------------------------
/**
* 子系统2
* @author Administrator
*
*/
public class SubSystem2 {
public void open(){
System.out.println("打开第二个抽屉");
getFile();
}
private void getFile() {
System.out.println("得到文件");
}
}
-------------------------------------------------------------------------
/**
* 总的系统,对外相当于屏蔽了具体的实现细节,
* @author Administrator
*
*/
public class FacadeSystem {
public void getFile(){
new SubSystem1().open();
new SubSystem2().open();
}
}
------------------------------------------------------------------------------
/**
* 测试类
* @author Administrator
*
*/
public class Test {
public static void main(String[] args) {
FacadeSystem facadeSystem = new FacadeSystem();
facadeSystem.getFile();
}
}