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();
            }
        }
    }

    输出结果:

  • 相关阅读:
    LG P4213【模板】杜教筛(Sum)
    JZOJ 3447.摘取作物
    JZOJ 3448.公路维护
    JZOJ 4496. 【GDSOI 2016】第一题 互补约数
    jmeter的参数化之函数助手的使用
    window10平台运行jenkins.war的插件安装失败的解决
    jmeter的断言之响应断言的使用
    在虚拟机里安装完mysql后,开启root远程登录权限
    Word Excel PPT 2016从新手到高手
    Oracle 如何停止正在后台执行的impdp/expdp 任务
  • 原文地址:https://www.cnblogs.com/wangtao1211/p/12519427.html
Copyright © 2011-2022 走看看