Repository 由多个子仓库组成可以吗?

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

我有一个存储库,它处理一个包含大量信息的实体,这些信息使用不同的表填充,但使用相同的连接。

为了更好地封装事物,我创建了“子存储库”来填充实体的部分内容。

是违反模式还是完全正确?

c# .net oop domain-driven-design repository-pattern
1个回答
0
投票

为了回答你的问题,我认为明确区分将表映射到对象的数据映射器存储库是有意义的:

存储库

在域和数据映射层之间进行中介

而数据映射器

在对象和数据库之间移动数据

所以,如果我正确理解你的问题,你实际上是在谈论数据映射器

是的,创建可以组合成更大映射器的数据映射器是一个好方法。它促进了关注点分离并使各个映射器变得简单。

另一方面,存储库应该按聚合使用。 为域中的每个聚合创建一个存储库。这也意味着该存储库仅适用于整个聚合,而不适用于实体。为了实现其目标,存储库可以使用(组合的)数据映射器。这就是这两个概念的联系。

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