Facade
为一组具有类似功能的类群,提供一个一致的简单界面。
外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。
角色和职责
1.Facade
为调用方定义简单的调用接口
2.Clients
调用者。通过Facade接口调用提供某功能的内部类群
3.Packages
功能提供者,指提供功能的类群(模块或子系统)
//Facade
public class Facade {
private SystemA systemA;
private SystemB systemB;
private SystemC systemC;
public Facade(){
systemA = new SystemA();
systemB = new SystemB();
systemC = new SystemC();
}
public void doABC(){
this.systemA.doSomething();
this.systemB.doSomething();
this.systemC.doSomething();
}
public void doAB(){
this.systemA.doSomething();
this.systemB.doSomething();
}
}
//Packages
/**
* 子系统A
*/
public class SystemA {
public void doSomething(){
System.out.println("实现A子系统功能");
}
}
public class SystemB {
public void doSomething(){
System.out.println("实现B子系统功能");
}
}
public class SystemC {
public void doSomething(){
System.out.println("实现B子系统功能");
}
}
//Clients
public class MainClass {
public static void main(String[] args) {
Facade facade = new Facade();
facade.doABC();
}
}