zoukankan      html  css  js  c++  java
  • 工厂方法作业

    某软件公司欲开发一个数据格式转换工具,可以将不同数据源如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();
            }
        }
    }

    输出结果:

  • 相关阅读:
    Linux 使用crontab定时备份Mysql数据库
    pdf.js 文字丢失问题 .cmaps
    indexOf IE8下的兼容
    Huplaodfiy---图片文件上传插件修改
    dateTimePicker日期时间插件-----限定节假日调休的可选择性
    【转】MyEclipse第一个Servlet程序
    input 的 placeholder属性在IE8下的兼容处理
    zepto的scrollTo,实现锚点跳转
    微信小程序
    mac 终端中添加tree命令显示文件目录结构
  • 原文地址:https://www.cnblogs.com/wangtao1211/p/12519427.html
Copyright © 2011-2022 走看看