我真的在努力解决以下问题:
假设我有一个用户聚合。用户可以创建1个以上的群组,消息,朋友,照片画廊等。现在看来,群组,消息,朋友,照片库应该各自都在他们自己的聚合分组中。创建包含IList<>的用户实体似乎不合逻辑。这些部分中的每一部分的属性,而不是只有群组,消息,朋友,照片画廊等的用户属性。从DDD的角度来看哪种方法最有意义?我也在考虑实体水合作用,并且根据需要获取组,消息等似乎更有意义,而不是从用户实体中检索所有内容。处理此方案的推荐方法是什么?
答案 0 :(得分:4)
即使不了解您的特定业务领域,将User
类作为一种神聚合与其下的所有其他内容一起听起来也是错误的。
将您的实体分组为具有聚合根的较大实体,完全取决于您的业务运作方式。例如,PhotoGallery
可以是一个聚合根,其下面有许多Photo
个对象,或者PhotoGallery
和Photo
都可以是单独的聚合根。
例如,您可能经营一家照片开发公司,照片总是以完整的PhotoGallery
(1个聚合根)收集,处理和处理。
或者您可以运行社交网站,其中Photo
可以共享和使用,而无需加载整个图库(2个聚合根)。
因此,这取决于您以及您的业务领域所要求的内容。你可以随时吮吸它,以某种方式尝试并看看它是如何进行的,然后再进行重构。