0

在 C# 应用程序中,我有一个字符串数组,如下所示:

string[] myArray = GetStrings(source);

现在我想将此数组的内容写入不同格式的文件,例如

  • 平面列表
  • CSV
  • XML
  • ...

但是,我不确定实现这些不同格式的最适当方式是什么。我能想到:

  1. 每种格式一个类,每个类都有一个Write()方法:
    • FlatListWriter
    • CsvWriter
    • XmlWriter
  2. 一个类包含几个方法:
    • WriteAsFlatList()
    • WriteAsCsv()
    • WriteAsXml()
  3. 具有Write()方法及其实现类的接口,如 1 中所示。
  4. 某种抽象类。

你会推荐什么?

4

2 回答 2

2

您的所有选择看起来都合理且同样好。选择应基于系统的其他要求。

如果您想在将来添加格式,并且多个人将编写它们,那么每个编写器一个类似乎是一个更好的选择,因为它们会更好地分开,您可以动态加载它们并独立测试。

如果你想从一些powershell脚本中调用这些方法,同一个类中的多个静态方法可能是一个更简单、更方便的解决方案。

于 2013-06-18T21:20:37.083 回答
1

尽管从个人经验来看它是一个小工具,但我发现最好将这些东西分成自己的类。如果您需要添加一些功能,它将为您节省一些时间。

它还为更好的单元测试做好了准备,这是我在我编写的几乎所有工具中都采用的最佳实践。它可以带来更好的代码并节省我测试应用程序的时间,如果您编写联合测试,每个编写器的单独类将在这方面为您提供帮助。阅读Roy Osherove 的博客,了解更多关于此的提示。

希望这个建议有帮助。

于 2013-06-18T21:39:29.213 回答