首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我该如何使用这个Factory类,重点是什么?

我该如何使用这个Factory类,重点是什么?
EN

Stack Overflow用户
提问于 2020-02-18 23:39:35
回答 1查看 49关注 0票数 0

这是我第一次在SO上发帖,我对C#非常陌生,因为我在数据库方面的大部分IT经验都很丰富。我开始查看我们的一些代码,并想了解我将如何使用这个类和it方法来实现可重用性。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class FileCreator
{
    public string Territory { get; set; }
    public string CV { get; set; }
    public string AdDate { get; set; }
    public string Category { get; set; }
    public string Advertiser { get; set; }
    public string Brand { get; set; }
    public decimal SumOfSpend { get; set; }
    public decimal SumOfVolume { get; set; }
    public string Spots { get; set; }
    public string PageNumber { get; set; }

    internal static List<FileCreator> Create(DataSet data)
    {
        var result = new List<FileCreator>();

        if (data.Tables.Count > 0)
        {
            result = Create(data.Tables[0]);
        }

        return result;
    }

    public static List<FileCreator> Create(DataTable dataTable)
    {
        var result = new List<FileCreator>();

        foreach (DataRow row in dataTable.Rows)
        {
            result.Add(Create(row));
        }

        return result;
    }

    private static FileCreator Create(DataRow row)
    {
        var fileCreator = new FileCreator();

        fileCreator.Territory = (row["Territory"].ToString());
        fileCreator.CV = row["CV"].ToString();
        fileCreator.AdDate = row["Ad_date"].ToString();
        fileCreator.Category = row["Category"].ToString();
        fileCreator.Advertiser = row["Advertiser"].ToString();
        fileCreator.Brand = row["Brand"].ToString();
        fileCreator.SumOfSpend = Convert.ToDecimal(row["SumOfSpend"].ToString());
        fileCreator.SumOfVolume = Convert.ToDecimal(row["SumOfVolume"].ToString());
        fileCreator.Spots = row["Spots"].ToString();
        fileCreator.PageNumber = row["Page Number"].ToString();

        return fileCreator;
    }
}

为什么不创建一个新的datatable实例,即var dt = new Datatable()?

我肯定忽略了这种方法的要点。当我通常只创建多个数据表时,我将如何从这种方法中受益?

放轻松。这是我的第一个帖子?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-19 03:31:33

这样做的重点是获得一个强类型的类,而不是依赖于硬编码的字符串来获取数据,然后将所有内容转换为您期望的类型。相反,它从Datatable获取数据并将其转换为"Dto“(数据传输对象),在该对象中,您知道所有存在的属性(列)及其类型,因为它们是显式声明的。不需要猜测!:)

虽然这里给出的方法是有效的,但我希望它更多地是为了遗留。直接创建此Dto类比创建Datatable然后对其进行映射更有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60290991

复制
相关文章
Runtime类(重点)
在每一个JVM进程之中,都会存在一个运行时的操作类的对象,而这对象所属的类型就是Runtime类。打开这个类的文档可以发现,在这个类之中并没有构造方法定义,可是按照之前所学,每个类至少有一个构造方法,而这个类的构造方法实际上存在只是不被外部看见而已,因为构造方法被私有化了,这是一个标准的单例设计模式。既然是单例设计模式则在这个类就一定会存在一个static型的方法,可以取得本类的实例化对象:public static Runtime getRuntime()。 而当取得了这个类的实例化对象之后,可以利用这个类取得一些JVM的信息,
葆宁
2019/04/18
5100
我是如何看这个世界
首先这里要感谢大家支持。公众号第一篇文章发出后不到一星期就有500人关注,另外文章还被阿里天池的官方公众号转载,非常高兴能得到大家的认可。这段时间有很多朋友提供了宝贵的帮助和建议,包括一些大V主动转载并推荐我的公众号,小伟不胜感激。我这个人有一说一,别人对我的好我都会一直记着,你帮了我,日后若有需要尽管开口,我一定加倍帮你。
用户9656380
2022/04/14
5910
我是如何看这个世界
比较聚类:我该划分多少个聚类簇?
在上期文章层次聚类与聚类树中,不同对象之间的关系可以通过聚类树展现出来,通过聚类树我们可以观察哪些对象比较相似,哪些对象距离较远,从而对所有对象的关系有一个整体的把握。然而,这时候我们并没有获得一个明显的聚类簇划分,也即不知道对象可以划分为几类、谁和谁归为一类,以及这个聚类结果是不是合理,这可以通过比较聚类来实现。
SYSU星空
2022/05/05
8630
比较聚类:我该划分多少个聚类簇?
数据运营是什么?该如何做?
一提到数据运营,很多同学很疑惑。在公司里,经常领导们对数据运营抱了很高期望,一张嘴:“数据驱动运营”,“降本增效”之类的口号都出来了,可真到工作中,就变成了“写sql的运营”。到底咋驱动了?咋提高效率了?看不到落地成果
接地气的陈老师
2022/04/19
8560
数据运营是什么?该如何做?
玻璃拟态是什么?前端该如何实现
玻璃拟态是目前市面上的新风格,越来越受欢迎。新拟态模仿了受到挤压的塑料材质(凹凸质感,凸显层次感),这个新的视觉风格更加注重垂直空间 z 轴的使用。它最典型的特征是:
狂奔滴小马
2021/11/15
6710
玻璃拟态是什么?前端该如何实现
数据治理是什么?该如何入门呢?
大家好,我是独孤风,一位曾经的港口煤炭工人,目前在某国企任大数据负责人,公众号大数据流动主理人。
大数据流动
2023/07/21
6070
数据治理是什么?该如何入门呢?
数据治理是什么?该如何入门呢?
大家好,我是独孤风,一位曾经的港口煤炭工人,目前在某国企任大数据负责人,公众号大数据流动主理人。
用户6070864
2023/08/09
3260
数据治理是什么?该如何入门呢?
【我问 Crossin】Crossin 这个名字是什么意思?
1 新建 git 项目是用 git init 还是 git clone,git init 和 git clone 都是创建新仓库,两个有什么区别? git init 和 git clone 二者功能并不相同。 git init 是以本地当前的目录来创建一个 git 仓库,它是一个本地的操作。比如你在文件夹 project 里有一些代码文件,通过 git init 创建仓库后,可以将这些文件加入 git 仓库管理。但要提交到远程仓库或 github 上的话,还需要再指定远程仓库的地址。 git clone 是
Crossin先生
2018/04/17
1.1K0
Linux screen命令的作用是什么?screen命令该如何使用?
参考文档:https://wangchujiang.com/linux-command/c/screen.html
房东的狗丶
2023/04/28
1.7K0
Java类库之StringBuffer类(重点)
· String类的对象有两种实例化方式,一种是直接赋值,只会开辟一块堆内存空间,而且对象可以自动入池,另外一种方式使用构造方法完成,会开辟两块空间,有一块空间将成为垃圾,并且不会自动入池,但是可以通过intern()方法手工入池; · 字符串常量一旦声明则不可改变,而字符串对象可以改变,但是改变的是其内存地址的指向;
葆宁
2019/04/18
8430
Java类库之StringBuffer类(重点)
【6/25】使用简单工厂模式(Simple Factory Pattern)改写Page基类
这是《小游戏从0到1设计模式重构》系列内容第6篇,所有源码及资料在“程序员LIYI”公号回复“小游戏从0到1”获取。
LIYI
2021/02/23
3750
【6/25】使用简单工厂模式(Simple Factory Pattern)改写Page基类
新手该如何使用 GitHub?
这里推荐下,实验楼的《Git 与 Github 入门实践》课程。本着实用的原则,针对零基础同学,以图文的形式详细介绍了 Git &amp; GitHub 结合使用的基本操作。
知忆
2021/06/05
1.5K0
从我的历程谈谈该如何学习
很多时候,会有一些刚毕业或刚入行的童鞋问我:老师,怎么学习webgis开发?我也一直在思考这个问题,作为一个新人,应该如何学习webgis,降低webgis的学习成本。对于如何学习,是一个很模糊也很难有标准答案的问题,因人而异,仁者见仁,智者见智。本文,从我个人的学习路程上抛砖引玉的简单说说,希望有所启发,有所帮助。
牛老师讲GIS
2018/10/23
7840
【我问Crossin】爬虫学习该如何入门?
1 程序中使用了列表,运行过程中报错: IndexError: list index out of range 这是由于列表的下标索引值超过了列表的总长度。 举例: >>>l = [1,2] >>>l[5] IndexError: list index out of range 为了避免这种情况,可以使用 len() 函数取得列表的总长,再进行索引 if len(l) > 5: print(l[5]) 2 如何将一个 py 文件打包为 exe 文件? 将 .py 文件打包为 exe 文件可以使用
Crossin先生
2018/04/17
8050
【我问Crossin】Python web 该如何入门?
1 如何在 Python 中判断字符编码类型? 使用 chardet 库可以检测 >>>import chardet >>>l = b'\xc3\x83\xc3\xbb\xc2\xb4\xc3\x8e' >>>chardet.detect(l) {'encoding': 'utf-8', 'confidence': 0.938125} 注意:chardet也只是根据编码文本的内容进行推断,不能保证绝对准确。字符越多,判断会更越准确。 2 学习 GUI 界面有什么推荐的库么? 可参考编程教室之前发过的文章:
Crossin先生
2018/04/17
6670
初识JAVA:Runtime类(重点)
在每一个JVM进程之中,都会存在一个运行时的操作类的对象,而这对象所属的类型就是Runtime类。打开这个类的文档可以发现,在这个类之中并没有构造方法定义,可是按照之前所学,每个类至少有一个构造方法,而这个类的构造方法实际上存在只是不被外部看见而已,因为构造方法被私有化了,这是一个标准的单例设计模式。既然是单例设计模式则在这个类就一定会存在一个static型的方法,可以取得本类的实例化对象:public static Runtime getRuntime()。 而当取得了这个类的实例化对象之后,可以利用这个类取得一些JVM的信息,
葆宁
2022/05/06
2440
一键ghost是什么?该怎么使用?
不知道大家在生活中有没有遇到过电脑系统崩溃需要重新装系统的问题,或者有没有遇到过误删了某些重要文件怎么也找不回来的问题。其实这个时候我们就需要用到一键ghost,可能有些朋友会对此比较陌生,下面就来给大家介绍一下它的用处吧。
用户8739990
2021/07/12
1.8K0
一键ghost是什么?该怎么使用?
Java 工厂 Simple Factory&Factory&Abstract Factory
使用简单工厂的目的是创建一个对象时,不向客户暴漏内部的细节,并提供创建对象的通用接口。
Tim在路上
2020/08/04
3240
面试问到IOC我该如何回答呢?
相信在面试中,只要问到Spring,基本都会抛出一个问题,说说你对Spring IOC理解吧?虽然在日常的开发经常会使用到,但是要回答起来,并不简单。大脑经过简单的头脑风暴后,蹦出了控制反转、依赖注入这样的词语。显然这些并不是面试官想听的。
不一样的科技宅
2020/09/18
7770
面试问到IOC我该如何回答呢?
我来讲一下JDBC该如何学习
📦个人主页:楠慧 🏆简介:一个大二的科班出身的,主要研究Java后端开发 ⏰座右铭:成功之前我们要做应该做的事情,成功之后才能做我们喜欢的事 💕 过客的你,可以给博主留下一个小小的关注吗?这是给博主最大的支持。以后博主会更新大量的优质的作品!!!! 一、JDBC快速入门 1.jdbc的概念 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它是由一组用Java语言编写的类和接口组成的。
楠羽
2022/11/18
3910

相似问题

这个结构是什么?我该如何使用它?

30

我该如何命名这个集合类?

23

我该如何编写这个ruby类?

32

这个NameError是什么?我该如何修复它?

19

你知道我该如何重构这个类吗?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文