1

我需要完成一些事情,比如从 xls 源(ole db)加载数据,根据输出文件的规范对其进行格式化,合并已处理的字段,然后将其保存到 csv。

如何处理必须属于某种类型的多个数据字段?以某种方式格式化 - 等等。

我很难为这个问题抽象类结构。

哪种设计模式最适合我?

4

1 回答 1

1

我最初不会去考虑设计模式,而是将你的问题分解成更小的部分,至少一开始是这样。

现在,您的描述可能有点含糊,无法真正深入了解实际处理的细节,但我可以从中确定至少三个部分:

  • 数据阅读器
  • 数据处理器
  • 数据写手

你可能想把你的读者和作者都想成类似于你处理文件或流的方式。例如,您的读者可能有:

  • Open
  • Read(只读一项)
  • Close

作家也是如此,但Write.

抽象两个接口 anIDataReader和 an IDataWriter,并让您IDataProcessor与 reader 和 writer 进行交互,但只能通过接口。

拥有这些合同意味着您可以为阅读器(例如XLSReader : IDataReader和编写器)提供一个实现CSVWriter : IDataWriter,而处理器不必担心解决每个问题的内部方法。

有了这些抽象,您就可以为每个部分单独编写干净且独立的单元测试(通过模拟其他部分),这将使您可以在开发过程中测试每一步。

此外,这些类型的合同让您可以处理小数据包中的数据,而不是一大块数据(比如大数据之类的数据DataTable)、衡量进度等。

现在,根据您的实际要求,您可以拥有读者提供的数据类型的模式或定义,对于可以更改传入数据和构建输出等的输出、格式化程序和转换器也是如此。

于 2012-11-20T01:25:28.477 回答