2012-11-20 37 views
1

我需要从xls源(ole db)中加载数据,根据输出文件的规范格式化,合并proccessed字段,然后将其保存到csv。“加载格式保存数据”的设计模式

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

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

哪种设计模式最适合我?

回答

1

我不会尽量在设计模式中思考,而是将问题分解成更小的部分,至少在开始的时候。

现在,你的描述可能有点模糊,真正进入有关实际处理的细节,但是从它我可以找出至少三个部分:

  • 的数据阅读器
  • 数据处理器
  • 数据写入器

你可能要考虑你的读者和作家都相似,你会如何处理文件或流。例如,你的读者可能有:

  • Open
  • Read(读只是一个项目)
  • Close

与同为作家,但Write

抽象两个接口,一个IDataReader和一个IDataWriter,并让您的IDataProcessor与读取器和写入器进行交互,但只能通过接口进行交互。

已具备了这些合同,就意味着你可以有一个读者对作家来说,一种实现方式,如XLSReader : IDataReaderCSVWriter : IDataWriter,而不必担心其内部的方式来解决每一个处理器。

拥有这些抽象让你可以独立地(通过模拟其他部分)编写干净和独立的单元测试,这将允许您在开发过程中测试每一步的每一步。

而且,这些类型的合同,让你在处理小数据包的数据,而不是一个大批量的数据(像一个大DataTable之类的东西),衡量进展等

现在,根据您的实际需求,您可以拥有读卡器提供的数据类型的架构或定义,输出,格式器和变压器可以改变输入数据并构建输出等等。