我想在存储图片的实例中使用存储库模式。有多少类型应该实现Repository模式?
我所做的是将实际图片保存在磁盘上的目录中,但保存有关图片的数据以及图片与数据库中的哪些对象配合使用。我想知道是否应该使用2个接口来存储,如IStorePicRepo
和IStorePicDataRepo
或者有1个接口并在1个类中实现它。听起来对我来说,它不应该由同一个班级来实施,因为我们正在处理2种不同的存储机制。
有什么想法?
我想在存储图片的实例中使用存储库模式。有多少类型应该实现Repository模式?
我所做的是将实际图片保存在磁盘上的目录中,但保存有关图片的数据以及图片与数据库中的哪些对象配合使用。我想知道是否应该使用2个接口来存储,如IStorePicRepo
和IStorePicDataRepo
或者有1个接口并在1个类中实现它。听起来对我来说,它不应该由同一个班级来实施,因为我们正在处理2种不同的存储机制。
有什么想法?
我对存储库模式知之甚少,但我不会在我的标识符名称中将Repository缩写为Repo。 Abbrs。迷惑我。
这里没有银弹。
但我最终可能会与下面的设计:
IBinaryDataService: 对于数据的二进制格式的一般储蓄。要保存的对象必须有一个方法来帮助将其写入OutputStream。应该有一个方便的方法将它加载到原始对象中。
IDataIndexService: 对于数据属性/标签的索引,以帮助搜索以及。密切关注你所描述的图片的数据。
IPicRepo: 只有暴露给客户端的接口。客户应该使用这个,永远不知道上述两项服务。
FileSystemBinaryDataServiceImpl: 上面的IBinaryDataService的实现。
DbDataIndexServiceImpl: 上面的IDataIndexService的实现。
PicRepoImpl: 上面执行IPicRepo。使用spring将FileSystemBinaryDataServiceImpl和DbDataIndexServiceImpl作为依赖注入。
如果你希望其他扩展名:
IPersistentModel: 表示可以坚持的一个对象。有方法写(OutputStream),读(inputStream)和getAttributes():地图
PicModel: 上面的IPersistentModel的实现。
PS。这只是一般性的高层次概述。