工厂方法模式实例公司系统
在实际的企业应用中,一个公司的系统往往分散在很多不
同的地方运行。公司既没有建立全公司专网的实力,又不愿
意让业务数据实时地在广域网上传递。折中的方案是各分公
司内运行系统独立,每天业务结束时,各分公司导出业务数
据、打包、传送给总公司。
导出数据格式会有不同要求
文本格式、数据库备份格式、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("测试数据");
}
}
本文作者:TwcatL_tree
本文链接:https://www.cnblogs.com/twcat/p/16912764.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步