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