工厂作业方法
工厂作业方法
作业问题:
某软件公司欲开发一个数据格式转换工具,可以将不同数据源如txt文件、数据库、Excel表格中的数据转换成XML格式。为了让系统具有更好的扩展性,在未来支持新类型的数据源,开发人员使用工厂方法模式设计该转换工具的核心类,客户端只需使用工厂类即可获得具体的转换类对象,再调用其相应方法实现数据转换操作。绘制该类图,并选择一种语言编程实现。
类图:
实现代码:
//抽象工厂接口
public interface ConvertorCreator {
//创建具体的转换对象
public Convertor getConvertor();
}
public class DBConvertorCreator implements ConvertorCreator {
public Convertor getConvertor(){
//数据库数据转换器
System.out.println("成功创建数据库数据转换器");
return new DBConvertor();
}
}
public class EXCELConvertorCreator implements ConvertorCreator{
public Convertor getConvertor(){
//EXCEL数据转换器
System.out.println("成功创建EXCEL数据转换器");
return new EXCELConvertor();
}
}
public class TXTConvertorCreator implements ConvertorCreator {
public Convertor getConvertor(){
//TXT数据转换器
System.out.println("成功创建TXT数据转换器");
return new TXTConvertor();
}
}
//抽象产品接口
public interface Convertor {
//数据转换
public void transform();
}
public class DBConvertor implements Convertor {
public void transform(){
//数据库数据转换为XML格式
System.out.println("成功将数据库数据转换为XML格式");
}
}
public class EXCELConvertor implements Convertor {
public void transform(){
//EXCEL数据转换为XML格式
System.out.println("成功将EXCEL数据转换为XML格式");
}
}
public class TXTConvertor implements Convertor {
public void transform(){
//TXT数据转换为XML格式
System.out.println("成功将TXT数据转换为XML格式");
}
}
public class Client {
public static void main(String[] args) {
Convertor DBConvertor = new DBConvertor();
DBConvertor.transform();
Convertor EXCELConvertor = new EXCELConvertor();
EXCELConvertor.transform();
Convertor TXTConvertor = new TXTConvertor();
TXTConvertor.transform();
}
}