這是一個非常簡單的示例來演示一個問題。雖然我只在這裏顯示兩個域對象,但想象還有更多不同的參數。對多個域對象和多個存儲機制使用IRepository模式
比方說,我有以下的域對象:
public class Object1
{
public string Identifier { get; set; }
public string Name { get; set; }
}
public class Object2
{
public string Identifier { get; set; }
public int ItemValue { get; set; }
}
典型的實現Repository模式將有一個Object1Repository和Object2Repository其中每個實現了一些IRepository接口,可能包括諸如ADDOBJECT,DeleteObject的,GetObjectByIdentifier方法等等...然後,存儲庫將知道如何與數據庫交互以執行建議的方法。
這一切都很好,我很多次都以這種方式使用了Repository模式。現在我遇到了一個問題,我擁有多種不同的存儲機制; Oracle,SQLServer,文本文件和XML文件。支持這個想法的最佳設計方法是什麼?存儲庫的存儲庫?基本上我試圖實現的是讓多個不同的對象能夠存儲到多個不同的存儲介質,我試圖將存儲庫模式應用於這個想法。
我正在編寫C#代碼,但我也可以閱讀大多數其他語言,因此建議的方法不一定必須是C#。
+1。另外,如果您不想使用IoC容器,則可以使用普通的舊式AbstractFactory來切換實現。 – tallseth
完美。我試圖在發佈這個問題之前進行搜索,我似乎沒有找到這個鏈接的問題。感謝您抽出寶貴的時間。 – meyousikmann