我从零开始学习DDD主题,在许多DDD示例中,我看到“存储库接口”位于域中。这个存储库的真正目的是什么/它到底做了什么或者解决了什么?这是否与持久性层实现相对应或有某种连接?
谢谢。
发布于 2021-03-31 22:07:25
这个存储库的真正目的是什么/它到底做了什么或者解决了什么?
在领域驱动设计的上下文中,存储库模式的参考是Evans编写的“蓝皮书”的第6章。这是他讨论生命周期管理模式的章节。
存储库是一个外观,旨在支持域实体(第5章模式)保存在内存集合中的错觉。因此,当您的流程需要一个实体时,它会请求存储库(通常提供一个标识符作为提示)。
从帕纳斯1971年的意义上讲,它是一种信息隐藏形式;我们可以在存储在内存中的临时集合与存储在磁盘、关系数据库管理系统或键/值存储中的持久集合之间自由切换。只有存储库的实现需要考虑管道的具体情况。
其动机主要是将开发人员的关注点分开;思想的分离允许开发人员专注于“业务规则”,而不会因为存储和检索的问题而分心。
发布于 2021-03-31 17:50:22
Repository接口位于域层,Repository本身在基础设施层中实现。在域层中定义Repository接口可以轻松地在基础设施实现之间切换,因为它们都遵循相同的接口。
最终,应用程序层将从基础结构层调用一个存储库实现。更进一步,您甚至可以基于Repository接口定义一个应用程序接口,然后定义一个从基础设施层注入所选Repository实现的应用程序实现。
https://stackoverflow.com/questions/66891936
复制相似问题