为子系统中的一组接口提供一个一致的界面,facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用
这里写图片描述通过一个代理,把所有对象都收集起来,暴露某些函数给client,使得client可以使用被封装起来的对象
代码
Main
public class Main {
public static void main(String[] args) {
Facade facade=new Facade(new SubSystemA(),new SubSystemB(),new SubSystemC());
facade.methodA();
facade.methodB();
}
}
Facade
public class Facade {
private SubSystemA A;
private SubSystemB B;
private SubSystemC C;
public Facade(SubSystemA a, SubSystemB b, SubSystemC c) {
A = a;
B = b;
C = c;
}
public void methodA(){
System.out.println("begin facade-methodA");
this.A.methodA();
this.C.methodC();
System.out.println("end facade-methodA");
}
public void methodB(){
System.out.println("begin facade-methodB");
this.B.methodB();
this.C.methodC();
System.out.println("end facade-methodB");
}
}
SubSystemA
public class SubSystemA {
public void methodA(){
System.out.println("A 的方法");
}
}
SubSystemB
public class SubSystemB {
public void methodB(){
System.out.println("B 的方法");
}
}
SubSystemC
public class SubSystemC {
public void methodC(){
System.out.println("C 的方法");
}
}
网友评论