工厂方法模式实例公司系统

2022-11-29 17:06:36 浏览数 (3)

在实际的企业应用中,一个公司的系统往往分散在很多不 同的地方运行。公司既没有建立全公司专网的实力,又不愿 意让业务数据实时地在广域网上传递。折中的方案是各分公 司内运行系统独立,每天业务结束时,各分公司导出业务数 据、打包、传送给总公司。 导出数据格式会有不同要求 文本格式、数据库备份格式、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("测试数据");

	}

}

1 人点赞