在实际的企业应用中,一个公司的系统往往分散在很多不 同的地方运行。公司既没有建立全公司专网的实力,又不愿 意让业务数据实时地在广域网上传递。折中的方案是各分公 司内运行系统独立,每天业务结束时,各分公司导出业务数 据、打包、传送给总公司。 导出数据格式会有不同要求 文本格式、数据库备份格式、Excel格式、Xml格式 分清哪是产品类、哪是工厂类
ExportFileApi
代码语言:javascript复制package 工厂方法模式;
public interface ExportFileApi {
public boolean export(String data);
}
ExportOpearte
代码语言:javascript复制public abstract class ExportOpearte {
public boolean export(String data)
{
ExportFileApi api=factoryMethod();
return api.export(data);
}
protected abstract ExportFileApi factoryMethod();
}
ExportDB
代码语言:javascript复制public class ExportDB implements ExportFileApi {
@Override
public boolean export(String data) {
System.out.println("导出数据" data "到数据库备份文件");
return true;
}
}
ExportDBOperate
代码语言:javascript复制public class ExportDBOperate extends ExportOpearte {
@Override
protected ExportFileApi factoryMethod() {
// TODO Auto-generated method stub
return new ExportDB();
}
}
ExportTxtFile
代码语言:javascript复制public class ExportTxtFile implements ExportFileApi {
@Override
public boolean export(String data) {
System.out.println("导出数据" data "到文本文件");
return true;
}
}
ExportTxtFileOperate
代码语言:javascript复制public class ExportTxtFileOperate extends ExportOpearte {
@Override
protected ExportFileApi factoryMethod() {
// TODO Auto-generated method stub
return new ExportTxtFile();
}
}
客户端
代码语言:javascript复制public class test {
public static void main(String[] args) {
ExportOpearte operate =new ExportDBOperate();
operate.export("测试数据");
}
}