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