gpt4 book ai didi

design-patterns - 应该有多少种类型来实现存储库模式?

转载 作者:行者123 更新时间:2023-12-04 07:10:43 24 4
gpt4 key购买 nike

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

我所做的是将实际图片保存在磁盘上的目录中,但保存有关图片的数据以及哪些图片与数据库中的哪些对象一起使用。我想知道是否应该使用 2 个接口(interface)进行存储,例如 IStorePicRepoIStorePicDataRepo或有 1 个接口(interface)并在 1 个类中实现它。在我看来,它不应该由同一个类实现,因为我们正在处理 2 种不同的存储机制。

有什么想法吗?

最佳答案

这里没有 Elixir 。

但我可能最终会得到以下设计:

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

IDataIndexService:
对于数据属性/标签的索引,也有助于搜索。与您描述的图片数据密切对应。

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

FileSystemBinaryDataServiceImpl:
上面 IBinaryDataService 的实现。

DbDataIndexServiceImpl:
上面的 IDataIndexService 的实现。

PicRepoImpl:
上面IPicRepo的实现。使用 spring 注入(inject) FileSystemBinaryDataServiceImpl 和 DbDataIndexServiceImpl 作为依赖项。

如果您愿意,可以进行额外的扩展:

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

图片型号:
上面IPersistentModel的实现。

PS。这只是一般的高级概述。

关于design-patterns - 应该有多少种类型来实现存储库模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/397214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com