Design patterns 应该有多少类型实现存储库模式?

Design patterns 应该有多少类型实现存储库模式?,design-patterns,oop,repository-pattern,Design Patterns,Oop,Repository Pattern,我试图在存储图片的实例中使用存储库模式 我要做的是将实际的图片保存在磁盘上的一个目录中,但保存关于图片的数据以及图片与数据库中的对象的关系。我想知道我是否应该使用两个接口来存储,比如IStorePicRepo和IStorePicDataRepo,或者使用一个接口并在一个类中实现它。在我看来,它不应该由同一个类实现,因为我们要处理两种不同的存储机制 有什么想法吗?我对存储库模式知之甚少,但我不会在标识符名称中将存储库缩写为Repo。阿巴斯。让我困惑。这里没有银弹 但我可能最终会采用以下设计: IB

我试图在存储图片的实例中使用存储库模式

我要做的是将实际的图片保存在磁盘上的一个目录中,但保存关于图片的数据以及图片与数据库中的对象的关系。我想知道我是否应该使用两个接口来存储,比如
IStorePicRepo
IStorePicDataRepo
,或者使用一个接口并在一个类中实现它。在我看来,它不应该由同一个类实现,因为我们要处理两种不同的存储机制


有什么想法吗?

我对存储库模式知之甚少,但我不会在标识符名称中将存储库缩写为Repo。阿巴斯。让我困惑。

这里没有银弹

但我可能最终会采用以下设计:

IBinaryDataService: 用于将数据以二进制格式保存。要保存的对象必须有一个方法来帮助将其写入OutputStream。应该有一种方便的方法将其加载到原始对象中

IDatandex服务: 用于数据属性/标记的索引,以帮助搜索。与您描述的pic数据密切对应

IPicRepo: 仅对客户端公开的接口。客户应该使用这项服务,并且永远不知道上述两项服务

FileSystemBinaryDataServiceImpl: 上面IBinaryDataService的实现

DbDataIndexServiceImpl: 上述IDataIndex服务的实现

PicRepoImpl: 实施上述《综合投资政策和建议》倡议。使用spring将FileSystemBinaryDataServiceImpl和DbDataIndexServiceImpl作为依赖项注入

如果您愿意,还可以进行其他扩展:

IPERSIT模型: 可以持久化的对象的表示形式。具有write(OutputStream)、read(inputStream)和getAttributes()方法:Map

PicModel: 上述模型的实现

注:这只是一个一般性的高层次概述