大话设计模式-外观模式
外观模式
把子系统的功能封装到一个类里,对外只提供这一个类,适合于老系统对外提供接口
四个子系统
/** * 子系统 1 */
public class SubSystemOne {
public void method_1() {
System.out.println("子系统方法 1");
}
}
/** * 子系统 2 */
public class SubSystemTwo {
public void method_2() {
System.out.println("子系统方法 2");
}
}
/** * 子系统 3 */
public class SubSystemThree {
public void method_3() {
System.out.println("子系统方法 3");
}
}
/** * 子系统 4 */
public class SubSystemFour {
public void method_4() {
System.out.println("子系统方法 4");
}
}
外观类
/** * 外观类 负责对外提供一个接口 */
public class Facade {
private SubSystemOne subSystemOne;
private SubSystemTwo subSystemTwo;
private SubSystemThree subSystemThree;
private SubSystemFour subSystemFour;
public Facade() {
subSystemOne = new SubSystemOne();
subSystemTwo = new SubSystemTwo();
subSystemThree = new SubSystemThree();
subSystemFour = new SubSystemFour();
}
public void methodA() {
System.out.println("方法组合A:");
subSystemOne.method_1();
subSystemTwo.method_2();
}
public void methodB() {
System.out.println("方法组合B:");
subSystemThree.method_3();
subSystemFour.method_4();
}
}
测试
public class Main {
public static void main(String[] args) {
Facade facade = new Facade();
facade.methodA();
facade.methodB();
}
}