某软件公司欲开发一个数据格式转换工具,可以将不同数据源如txt文件、数据库、Excel表格中的数据转换成XML格式。为了让系统具有更好的扩展性,在未来支持新类型的数据源,开发人员使用工厂方法模式设计该转换工具的核心类,客户端只需使用工厂类即可获得具体的转换类对象,再调用其相应方法实现数据转换操作。绘制该类图,并选择一种语言编程实现。
类图:
对应C#代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DataConversion { interface IDataSource //数据源接口 { void Converte(); } class TxtSource : IDataSource //txt文件 { public void Converte() { Console.WriteLine("txt文件数据源转换为XML格式成功!"); } } class DataBaseSource : IDataSource //数据库文件 { public void Converte() { Console.WriteLine("数据库文件数据源转换为XML格式成功!"); } } class ExcelSource : IDataSource //Excel文件 { public void Converte() { Console.WriteLine("Excel文件数据源转换为XML格式成功!"); } } interface IConverter //创建转换接口 { IDataSource CreatConversion(); } class TxtConverteToXML : IConverter //txt文件转为XML { public IDataSource CreatConversion() { Console.WriteLine("连接txt文件数据源成功!"); return new TxtSource(); } } class DataBaseConverteToXML : IConverter //数据库文件转为XML { public IDataSource CreatConversion() { Console.WriteLine("连接数据库文件数据源成功!"); return new DataBaseSource(); } } class ExcelConverteToXML : IConverter //Excel文件转为XML { public IDataSource CreatConversion() { Console.WriteLine("连接Excel文件数据源成功!"); return new ExcelSource(); } } class Program { static void Main(string[] args) { IConverter txt = new TxtConverteToXML(); //测试txt文件转化 txt.CreatConversion().Converte(); IConverter excel = new ExcelConverteToXML(); //测试Excel文件转化 excel.CreatConversion().Converte(); IConverter dataBase = new DataBaseConverteToXML(); //测试数据库文件转化 dataBase.CreatConversion().Converte(); Console.ReadKey(); } } }
输出结果: