“加载格式保存数据”的设计模式

时间:2012-11-20 00:15:51

标签: c# oop design-patterns design-principles

我需要完成诸如从xls源(ole db)加载数据,根据输出文件的规范对其进行格式化,合并proccessed字段,然后将其保存到csv等内容。

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

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

哪种设计模式最适合我?

1 个答案:

答案 0 :(得分:1)

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

现在,您的描述可能有点模糊,无法真正详细了解实际处理,但从中我可以识别出至少三个部分:

  • 数据阅读器
  • 数据处理器
  • 数据编写者

您可能想要将您的读者和作者都视为处理文件或流的方式。例如,您的读者可以:

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

对于作者来说也是如此,但Write

抽象两个接口,一个IDataReader和一个IDataWriter,让你的IDataProcessor与读者和作者互动,但只能通过接口。

拥有这些合同意味着您可以为读者设置一个实现,例如XLSReader : IDataReaderCSVWriter : IDataWriter,而处理器不必担心其内部解决方法

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

此外,这些类型的合同允许您处理小数据包中的数据,而不是大量数据(如大DataTable等),测量进度等。

现在,根据您的实际需求,您可以获得读者提供的数据类型的模式或定义,输出,格式化程序和变换器的相同,可以改变输入数据并构建输出等。

相关问题