我正在为我的项目实现导出功能。 我对设计模式有疑问。
实现允许从数据库导出到不同格式(即纯文本,CSV,XML,PDF ...)的功能的最佳模式是什么。?
在我的情况下,我必须在模板方法,代理和观察者中进行选择。我应该选择哪个?
谢谢
答案 0 :(得分:2)
您(可能)正在寻找Strategy pattern
从而可以在运行时选择算法的行为
基本上你可能会有IExporter
,然后是多个implimentations XmlExporter
,PlainTextExporter
等等。然后在运行时你可以选择一个或多个实际执行,执行电话会是一样的,但结果会有所不同。
像:
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;
}
}