客户在DDD的存储库模式中是什么意思?

问题描述 投票:2回答:1

我一直在快速阅读一本书《域驱动设计》。现在我到达了存储库模式。

我不确定他们提到“客户”指的是什么?“客户”在这里是什么意思?

数据库是基础架构的一部分。一个糟糕的解决方案是客户端注意访问数据库所需的详细信息。例如,the client必须创建SQL查询来检索所需的数据。数据库查询可能返回一组记录,公开更多内部细节。当许多客户必须直接从数据库创建对象,事实证明,此类代码分散在整个域中。

domain-driven-design repository-pattern ddd-repositories
1个回答
0
投票

存储库的客户端是一段代码(另一个类),通常是DDD / Onion Architecture上下文中的应用程序层。经验法则是:每个聚合根1个存储库。如果您的集合根是Order,并且其中内部包含OrderItem的集合,则仅创建OrderRepository并返回带有所有OrderItems的整个Order,而不是延迟加载。现在,您的客户端(应用程序层代码)应该不知道存储库中的内容(基于文件,基于SQL,基于HTTP),您将其视为内存集合:repository.GetById(orderId),其中存储库为IOrderRepository。这意味着您可以随时轻松地将存储库从“内存”更改为sql,然后随时更改。

© www.soinside.com 2019 - 2024. All rights reserved.