工厂方法
问题
某软件公司欲开发一个数据格式转换工具,可以将不同数据源如txt文件、数据库、Excel表格中的数据转换成XML格式。为了让系统具有更好的扩展性,在未来支持新类型的数据源,开发人员使用工厂方法模式设计该转换工具的核心类,客户端只需使用工厂类即可获得具体的转换类对象,再调用其相应方法实现数据转换操作。绘制该类图,并选择一种语言编程实现。
UML图

代码:
package factoryMethod02; public interface dataFactory {//数据工厂接口 public void getData(); }
package factoryMethod02; public interface Convertor {//产品接口 public void transform(); }
package factoryMethod02; public class txtData implements dataFactory{//txt工厂实现类 public void getData() { System.out.println("成功创建txt"); } }
package factoryMethod02; public class txtConvertor implements Convertor{//txt产品实现类 public void transform() { System.out.println("成功将txt转换成XML"); } }
package factoryMethod02; public class excelData implements dataFactory{//excel工厂实现类 public void getData() { System.out.println("成功创建excel文件"); } }
package factoryMethod02; public class excelConvertor implements Convertor{//excel产品实现类 public void transform() { System.out.println("成功将excel转换成XML"); } }
package factoryMethod02; public class databaseData implements dataFactory {//数据库工厂实现类 public void getData() { System.out.println("成功创建database文件"); } }
package factoryMethod02; public class databaseConvertor implements Convertor{//数据库产品实现类 public void transform() { System.out.println("成功将database转换成XML"); } }
package factoryMethod02; public class Client { public static void main(String[] args) { Convertor txtconvertor = new txtConvertor(); dataFactory txtdata = new txtData(); txtdata.getData(); txtconvertor.transform(); Convertor databaseconvertor = new databaseConvertor(); dataFactory databasedata = new databaseData(); databasedata.getData(); databaseconvertor.transform(); Convertor excelconvertor = new excelConvertor(); dataFactory exceldata = new excelData(); exceldata.getData(); excelconvertor.transform(); } }


浙公网安备 33010602011771号