我正在爲我的項目實施導出功能。 我有一個關於設計模式的問題。各種格式的設計模式
實現允許從數據庫導出到不同格式(即純文本,CSV,XML,PDF ......)的功能的最佳模式是什麼?
就我而言,我必須在Template Method,Proxy和Observer中進行選擇。我應該選擇哪一個?
謝謝
我正在爲我的項目實施導出功能。 我有一個關於設計模式的問題。各種格式的設計模式
實現允許從數據庫導出到不同格式(即純文本,CSV,XML,PDF ......)的功能的最佳模式是什麼?
就我而言,我必須在Template Method,Proxy和Observer中進行選擇。我應該選擇哪一個?
謝謝
你(可能)尋找Strategy pattern
,從而算法的行爲可以在運行時
本質上可以選擇,你可能有類似的IExporter
,然後多個imprimentations XmlExporter
,PlainTextExporter
等,然後在運行時你可以選擇一個或多個實際執行,執行調用wou ld是一樣的,但結果會有所不同。
像:
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;
}
}
謝謝,它有很大的幫助 – xtiger
這種方法有一個限制,因爲在抽象函數中,你認爲所有的導出格式都來自特定類型的Record。 實際上,它幾乎沒有發生。 – kidnan1991
鑑於PDF V.S. TXT與大象和火星探測器大致相似,你的模式必須非常普遍,接近無用。 –
「在我的情況下,我必須在Template Method,Proxy和Observer中進行選擇,我應該選擇哪一個?」爲什麼只有這些選擇?這是作業嗎? – Fuhrmanator