首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >领域驱动设计库

领域驱动设计库
EN

Stack Overflow用户
提问于 2021-03-31 16:46:13
回答 2查看 742关注 0票数 3

我从零开始学习DDD主题,在许多DDD示例中,我看到“存储库接口”位于域中。这个存储库的真正目的是什么/它到底做了什么或者解决了什么?这是否与持久性层实现相对应或有某种连接?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-31 22:07:25

这个存储库的真正目的是什么/它到底做了什么或者解决了什么?

在领域驱动设计的上下文中,存储库模式的参考是Evans编写的“蓝皮书”的第6章。这是他讨论生命周期管理模式的章节。

存储库是一个外观,旨在支持域实体(第5章模式)保存在内存集合中的错觉。因此,当您的流程需要一个实体时,它会请求存储库(通常提供一个标识符作为提示)。

帕纳斯1971年的意义上讲,它是一种信息隐藏形式;我们可以在存储在内存中的临时集合与存储在磁盘、关系数据库管理系统或键/值存储中的持久集合之间自由切换。只有存储库的实现需要考虑管道的具体情况。

其动机主要是将开发人员的关注点分开;思想的分离允许开发人员专注于“业务规则”,而不会因为存储和检索的问题而分心。

票数 5
EN

Stack Overflow用户

发布于 2021-03-31 17:50:22

Repository接口位于域层,Repository本身在基础设施层中实现。在域层中定义Repository接口可以轻松地在基础设施实现之间切换,因为它们都遵循相同的接口。

最终,应用程序层将从基础结构层调用一个存储库实现。更进一步,您甚至可以基于Repository接口定义一个应用程序接口,然后定义一个从基础设施层注入所选Repository实现的应用程序实现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66891936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档