外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层的接口,
这个接口使得这一子系统更加容易使用。
1. 外观模式的主要思想是将复杂的细粒度的对象服务包装成简单的易使用的粗粒度的功能服务.
2. 在分布式应用中,通过远程调用服务,通过外观模式降低应用程序与服务的交互次数,
同时可以降低应用程序的复杂性。
/**
* 子系统的类
*/
public class SubSystemOne {
public void methodOne(){
System.out.println("子系统方法1");
}
}
/**
* 子系统的类
*/
public class SubSystemTwo {
public void methodTwo(){
System.out.println("子系统方法2");
}
}
/**
* 子系统的类
*/
public class SubSystemThree {
public void methodThree(){
System.out.println("子系统方法3");
}
}
/**
* 子系统的类
*/
public class SubSystemFour {
public void methodFour(){
System.out.println("子系统方法4");
}
}
/**
* 外观类,需要了解所有的子系统的方法或属性,进行组合,以备外界调用。
*
*/
public class Facade {
private SubSystemOne one;
private SubSystemTwo two;
private SubSystemThree three;
private SubSystemFour four;
public Facade(){
one = new SubSystemOne();
two = new SubSystemTwo();
three = new SubSystemThree();
four = new SubSystemFour();
}
public void methodA(){
System.out.println("方法组A:-----------");
one.methodOne();
three.methodThree();
two.methodTwo();
}
public void methodB(){
System.out.println("方法组B:-----------");
two.methodTwo();
four.methodFour();
}
}
public class Main {
public static void main(String[] args) {
Facade facade = new Facade();
// 由于Facade的作用,客户端可以根本不知道四个子系统类的存在
facade.methodA();
facade.methodB();
}
}