1

这是一个非常简化的示例来演示一个问题。虽然我在这里只展示了两个域对象,但想象一下还有更多具有各种参数的域对象。

假设我有以下域对象:

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; }
}

存储库模式的典型实现将有一个 Object1Repository 和一个 Object2Repository,其中每个都实现一些 IRepository 接口,其中可能包括 AddObject、DeleteObject、GetObjectByIdentifier 等方法......然后存储库将知道如何与数据库交互以执行建议方法。

这一切都很好,我已经多次以这种方式使用存储库模式。现在我有一个问题,我有多种不同的存储机制;Oracle、SQLServer、文本文件和 XML 文件。支持这个想法的最佳设计方法是什么?存储库的存储库?基本上我想要实现的是让多个不同的对象能够存储到多个不同的存储介质中,我正在尝试将存储库模式应用于这个想法。

我正在编写 C# 代码,但我也可以阅读大多数其他语言,因此建议的方法不一定必须是 C#。

4

1 回答 1

2

请参阅如何设计存储库来处理多种数据访问策略?,我想这就是你想要的。

基本上假设您已经有一个 IRepository 接口具有 CRUD 方法和其他所有其他存储库引用的其他通用方法,那么您对 ​​IRepository 接口有多种实现。

之后,使用任何 IOC 容器(我使用 Windsor Castle)来解析哪个实现的组件应该参与此接口进行应用程序设置。

于 2013-08-02T02:28:53.020 回答