我最近有一个关于String Object with fixed length C#的问题。 (请先阅读此问题)
给出的一些答案指出我的设计可能存在缺陷。
由于最后一个问题是关于字符串,固定长度,这个问题与基本原则有关。这个问题可能有点长,所以请求我。
要求:
我有一个纯文本文件,其中包含指定固定长度的值。这个文本文件的标准来自90年代。我必须创建这样一个文件。
行指定如下:
回到90年代,有一个应用程序创建了这些文件放在服务器上,然后服务器读取文件并做了一些事情,比如把它写到数据库或通知某人出了什么问题等等。
由于最近的法律变更,此应用程序不再可用。
推荐设计
新的应用程序不会以导出的形式提供任何数据,但它有一个包含值的数据库。我有责任写一个转换器。所以我必须获取数据并编写导出的文本文件。数据仅发送,从未收到过!
问题
因为A DTO的唯一目的是传递状态,而且应该没有行为(POCO vs DTO) 是否有类似“数据转换对象”的东西,其目的是转换被转移的数据?是否有适用的设计模式?
答案 0 :(得分:0)
我最近为类似的问题设计了一个解决方案,尽管我的解决方案是使用SAS语言,而不是面向对象的。但是,对我来说,似乎问题几乎是一样的。现在,让我们剖析问题:
问题:
解决方案(面向对象): 我将定义三个类,PlainTextFile,Specification,Output和Reader Class。
规范:承包商采用规范(可能存储在文件中),并将其解析为规范对象。
PlainTextFile :如果添加了其他功能,可以处理文本文件或句柄周围的包装。我更喜欢第二种选择。
输出:这是您要制作的输出。
阅读器:它需要两个输入,PlainTextFile和Specification。使用Specification读取和解析PlainTextFile并以Output对象/格式写入输出。
现在,输出可以是最后一步。我建议,读者只做这么多。您希望将输出写入数据库,或将其发送到某处,创建另一个类来执行此操作。
请记住,我不知道这个模式的名称是什么。实际上,我认为这并不重要。对我来说,这种方法解决了公司十年来存在的一个问题,它集成了两个最常用的系统。