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

    输出结果:

  • 相关阅读:
    google搜索引擎使用方法
    通过Ajax和SpringBoot交互的示例
    利用html sessionStorge 来保存局部页面在刷新后回显,保留
    JS页面刷新保持数据不丢失
    Firefox浏览器中,input输入框输入的内容在刷新网页后为何还在?
    关于form/input 的autocomplete="off"属性
    Java对日期Date类进行加减运算,年份加减,月份加减
    select标签设置只读的方法(下拉框不可选但可传值)
    用Thymeleaf在前台下拉列表取值
    jsp页面动态展示list-使用<select>和<c:forEach>标签
  • 原文地址:https://www.cnblogs.com/wangtao1211/p/12519427.html
Copyright © 2011-2022 走看看