工厂方法作业
问题描述:某软件公司欲开发一个数据格式转换工具,可以将不同数据源如txt文件、数据库、Excel表格中的数据转换成XML格式。为了让系统具有更好的扩展性,在未来支持新类型的数据源,开发人员使用工厂方法模式设计该转换工具的核心类,客户端只需使用工厂类即可获得具体的转换类对象,再调用其相应方法实现数据转换操作。绘制该类图,并选择一种语言编程实现。
绘制的UML图:
package 作业; public interface DataSource { public void DataSource(); } package 作业; public interface Convert { public DataSource convert(); } package 作业; public class TxtDataSource implements DataSource { @Override public void DataSource() { // TODO Auto-generated method stub System.out.println("加载txt数据"); } } package 作业; public class EcxelDataSource implements DataSource{ @Override public void DataSource() { // TODO Auto-generated method stub System.out.println("加载Excel数据"); } } package 作业; public class DataBaseSource implements DataSource{ @Override public void DataSource() { // TODO Auto-generated method stub System.out.println("加载数据库"); } } package 作业; public class TxtConvert implements Convert { @Override public DataSource convert() { // TODO Auto-generated method stub DataSource ds = new TxtDataSource(); System.out.println("txt转换完成"); return ds; } } package 作业; public class ExcelConvert implements Convert{ @Override public DataSource convert() { // TODO Auto-generated method stub DataSource ds = new EcxelDataSource(); System.out.println("Excel转换完成"); return ds; } } package 作业; public class DataBaseConver implements Convert{ @Override public DataSource convert() { // TODO Auto-generated method stub DataSource ds = new DataBaseSource(); System.out.println("数据库转换完成"); return ds; } } package 作业; public class test { public static void main(String[] args) { Convert tc = new TxtConvert(); tc.convert(); Convert dc = new DataBaseConver(); dc.convert(); Convert cc = new ExcelConvert(); cc.convert(); } }
结果:
![](https://img2020.cnblogs.com/blog/1946800/202003/1946800-20200324220310999-564980161.png)