architecture – DDD – 每个实体的存储库还是一个存储库?
首先,可能没有正确答案,但我确信有些人比我更了解并且能够提供帮助.
我有3个实体:用户,博客,帖子. 系统可以包含任意数量的用户. 用户可以拥有任意数量的博客,但每个博客只有一个用户. 博客可以拥有与用户发布的帖子一样多的帖子,所有帖子都来自拥有博客的同一用户(即如果John拥有博客Food,只有John可以在此博客中发布).当然,每个帖子都有一个父级博客. 然后我有用户个人资料页面,我想要显示所有用户详细信息,他所有博客的名称,以及最近5个帖子. 然后我有一个博客页面,显示博客的详细信息,所有者的名称(用户)和所有帖子的标题. 然后我有一个帖子页面,显示帖子详细信息,博客名称和所有者名称. 如你所见,我在所有人之间都有关系,但他们都不能作为聚合. 在代码中定义实体并不困难,我所遇到的问题是定义存储库.我需要多少钱? 3 – 每个实体一个? 1 – 什么都有?我该如何进行查找? 例如,获取用户页面中的最后5个帖子.用户没有引用帖子,而是拥有博客容器,其中每个博客依次拥有帖子的容器.我的存储库中是否应该有一个接受UserID并返回帖子列表的方法?或者它应该是一个服务?另外,我通常不会执行所有数据的加载,而是延迟加载.通过检索现有的用户实体,除非需要(首次访问时),否则我不会加载其博客. 提前致谢.
我会创建:
>用于处理帖子和评论的PostRepository 如果您不打算支持评论,我会删除帖子库并处理BlogRepository中的帖子 我通常在使用它们之后对存储库进行建模,并避免聚合嵌套(超过两个级别).
imho用户不应该有博客的容器.您有存储库来获取它.
是.
服务用于从使用域模型的代码中删除业务逻辑.在得到那种逻辑之前不要创建它们.
通过不具有将所有域模型链接在一起的属性,可以避免延迟加载.尝试仅具有子聚合的属性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |