用于保存临时数据的动态对象

时间:2014-01-13 06:40:32

标签: c#

我正在创建Generic parser,它将解析任何类型的文件并将文件数据转换为对象。 示例:CSV文件包含产品数据将转换为Product对象。

我的方法是: 我有一个类MainParser,它将获取文件名,然后根据文件类型将其传递给各自的解析器,如CSV,excel,word解析器。

我在这里看的是我想创建一个中间对象,它首先包含数据然后可以将数据解析为相应的对象。中间对象是单个解析器的输出,然后我将该中间对象转换为主解析器中的最终对象,然后将其返回给调用者应用程序。

使用中间对象的好处是所有验证,而将文件数据转换为最终对象将在一个地方。

我可以使用什么样的对象来保存临时数据......这里的最佳做法是什么??

1 个答案:

答案 0 :(得分:1)

为什么不尝试像

这样的东西
class MainParser {
  public MyObject Parse(Filename file){
    //Build the relevant parser implementation according to the type of the file 
    IParser myParser = ParserFactory.BuildParser(file) 

    //Build the intermediate object
    DTOObject intermediateObject = myParser.Parse(file);

    //Finish the build
    return BuildMyObject(intermediateObject);
  }

  private MyObject BuildMyObject(DTOObject dtoObject){
     //Do validation and so on
  }
}

这里的中间对象只是一种Data Transfer Object,你只是暂时将它存储在一个局部变量中,因为在最终对象构建完成后你不需要它。