我需要完成一些事情,比如从 xls 源(ole db)加载数据,根据输出文件的规范对其进行格式化,合并已处理的字段,然后将其保存到 csv。
如何处理必须属于某种类型的多个数据字段?以某种方式格式化 - 等等。
我很难为这个问题抽象类结构。
哪种设计模式最适合我?
我需要完成一些事情,比如从 xls 源(ole db)加载数据,根据输出文件的规范对其进行格式化,合并已处理的字段,然后将其保存到 csv。
如何处理必须属于某种类型的多个数据字段?以某种方式格式化 - 等等。
我很难为这个问题抽象类结构。
哪种设计模式最适合我?
我最初不会去考虑设计模式,而是将你的问题分解成更小的部分,至少一开始是这样。
现在,您的描述可能有点含糊,无法真正深入了解实际处理的细节,但我可以从中确定至少三个部分:
你可能想把你的读者和作者都想成类似于你处理文件或流的方式。例如,您的读者可能有:
Open
Read
(只读一项)Close
作家也是如此,但Write
.
抽象两个接口 anIDataReader
和 an IDataWriter
,并让您IDataProcessor
与 reader 和 writer 进行交互,但只能通过接口。
拥有这些合同意味着您可以为阅读器(例如XLSReader : IDataReader
和编写器)提供一个实现CSVWriter : IDataWriter
,而处理器不必担心解决每个问题的内部方法。
有了这些抽象,您就可以为每个部分单独编写干净且独立的单元测试(通过模拟其他部分),这将使您可以在开发过程中测试每一步。
此外,这些类型的合同让您可以处理小数据包中的数据,而不是一大块数据(比如大数据之类的数据DataTable
)、衡量进度等。
现在,根据您的实际要求,您可以拥有读者提供的数据类型的模式或定义,对于可以更改传入数据和构建输出等的输出、格式化程序和转换器也是如此。