说明:提供对不同类的一系列操作的一个集合封装。向外提供一个高内聚的接口。
与模板方法不同的是,模板方法在抽象类中实现定义了流程,在子类中对具体进行实现。
外观模式是封装了现有类的实现,整合成一个所需的业务流程。
1、类图:

2、
public class AsyncExport {
private String exportType;
public AsyncExport() {
this.exportType = "ASYNC";
}
public void exportAsync() {
System.out.println("export type:" + this.exportType);
}
}
public class DefaultExport {
private String exportType;
public DefaultExport() {
this.exportType = "Default";
}
public void exportDefault() {
System.out.println("export type:" + this.exportType);
}
}
public class SyncExport {
private String exportType;
public SyncExport() {
this.exportType = "SYNC";
}
public void exportSync() {
System.out.println("export type:" + this.exportType);
}
}
public class Face {
private SyncExport syncExport;
private AsyncExport asyncExport;
private DefaultExport defaultExport;
public Face(){
this.syncExport = new SyncExport();
this.defaultExport = new DefaultExport();
this.asyncExport = new AsyncExport();
}
public void export(){
defaultExport.exportDefault();
asyncExport.exportAsync();
syncExport.exportSync();
}
}
public class ExportTest {
public static void main(String[] args) {
Face face = new Face();
face.export();
}
}