存储库设计模式

时间:2016-03-30 13:50:05

标签: design-patterns repository-pattern factory-pattern

我对存储库设计模式有疑问,确切地说如何与许多数据源进行交互。

例如,我有这些存储库:

  • UserRepositorySql
  • UserRepositoryMongo
  • UserRepositoryXml

(这是否正确?我的意思是为每个数据源创建一个存储库?)

更好的是:

  • 一个名为UserRepository的抽象类,另一个从UserRepository扩展。

  • 只是这3个存储库的界面。

我不清楚如何检索特定数据源的特定存储库,如果我使用抽象类,我可以实现一个UserFactory(工厂模式)类,它返回特定的存储库对象。 (这甚至是正确的吗?)

但是,如果我使用界面,我怎么能检索特定的存储库? (由于工厂模式需要父抽象类,我是对的吗?)

此外,当我说“特定存储库”时,我的意思是接收具有其特定数据源的存储库。

非常感谢, redigaffi。

1 个答案:

答案 0 :(得分:1)

  

更好的是:

     

一个名为UserRepository的抽象类,另一个从UserRepository扩展。

     

只是这3个存储库的接口。

从最简单的开始。恕我直言,这是界面。如果需要,添加一个抽象基类。

  

但是,如果我使用界面,我怎么能检索特定的存储库?

使用包含逻辑的工厂来确定要返回的存储库类型。