我最近一直在看Repository模式为其中客户端代码而言在地毯下刷牙持久性的所有细节的方式。而读周围似乎一个Repository是/可以是[通常?]负责聚集体,而不是仅仅直接的类。

这是有意义的我,你可以有一个类中定义的帖子并另一个定义的注释。这是一个理想的候选者聚集,因为这两个关系非常密切。但是,我怎么会代表的用户类和其关系与他或她的文章

难道是有意义的汇总用户的文章/评论聚集,或保留的用户本身,只是必须通过一个良好的老式参考关联?

我曾尝试寻找使用谷歌自己的答案,但有很多的例子,我觉得只是单机。即,文章/评论或可能的订单订单行等我找不到任何显示相关类如何等结合在一起的。

我不将其应用到任何特定的,尽管PHP或Java / C#很可能是该地区我想看看用这些想法。在任何情况下,我只是探索和尝试之前,我流掉,并创建一个怪物让我周围的一些想法和概念的头。 :)

感谢您的时间。

有帮助吗?

解决方案

存储库模式是相当松散地定义的,并不一定必须在聚合模式的任何关系。但是,如果您订阅的做事方式DDD,那么是的,仓库是唯一的聚集。

因此,让我们从视DDD点看看这个。 DDD说,聚合中的对象可以具有到另一聚合根的引用,但聚集体中的对象只能通过根进行访问。根据经验,确定聚集的规则是什么应该删除根时被删除。然而,DDD鼓励使用关系超过一般的方法说,仅仅因为在一个域中存在关系,它并不需要在你的域模型存在,因此只要记住这一点。

在你的情况,当你删除帖子,我认为你也将删除意见,但不是谁创造的职位或谁对它发表了评论的用户的用户。因此,你在限定立柱/评论汇总正确的,但它是没有意义的将用户划分为该总额。

用户,为自身的聚集体,可以包含对所有他们的讯息的关系,因为邮政是聚合根。你也可以这样实现对PostRepository的方法由给定用户得到的所有文章。希望帮助!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top