不同种类格式的设计模式

时间:2014-03-05 03:04:45

标签: design-patterns

我正在为我的项目实现导出功能。 我对设计模式有疑问。

实现允许从数据库导出到不同格式(即纯文本,CSV,XML,PDF ...)的功能的最佳模式是什么。?

在我的情况下,我必须在模板方法,代理和观察者中进行选择。我应该选择哪个?

谢谢

1 个答案:

答案 0 :(得分:2)

您(可能)正在寻找Strategy pattern

  

从而可以在运行时选择算法的行为

基本上你可能会有IExporter,然后是多个implimentations XmlExporterPlainTextExporter等等。然后在运行时你可以选择一个或多个实际执行,执行电话会是一样的,但结果会有所不同。

像:

public abstract class ExporterBase
{
    abstract public bool Export(Record record);
}

public class DatabaseExporter : ExporterBase
{
  public bool Export(Record record) 
  {
    // TODO: Write to DB
     return true;
  }
}

public class CsvExporter : ExporterBase
{
  public bool Export(Record record) 
  {
    // TODO: Write to Csv file
     return true;
  }
}