我真的在以下情况下苦苦挣扎:
假设我有一个用户聚合。用户可以创建 1 个以上的群组、消息、朋友、照片库等。现在看来,群组、消息、朋友、照片库都应该在各自的聚合分组中。为这些部分中的每一个创建一个包含 IList<> 属性的用户实体似乎不合逻辑,而不仅仅是为组、消息、朋友、照片画廊等创建一个 User 属性。从 DDD 中哪种方法最有意义看法?我也在考虑实体水合,根据需要获取组、消息等似乎更有意义,而不是从用户实体中检索所有内容。处理这种情况的推荐方法是什么?
我真的在以下情况下苦苦挣扎:
假设我有一个用户聚合。用户可以创建 1 个以上的群组、消息、朋友、照片库等。现在看来,群组、消息、朋友、照片库都应该在各自的聚合分组中。为这些部分中的每一个创建一个包含 IList<> 属性的用户实体似乎不合逻辑,而不仅仅是为组、消息、朋友、照片画廊等创建一个 User 属性。从 DDD 中哪种方法最有意义看法?我也在考虑实体水合,根据需要获取组、消息等似乎更有意义,而不是从用户实体中检索所有内容。处理这种情况的推荐方法是什么?
User
即使对您的特定业务领域了解不多,将类作为一种上帝聚合在其下的所有其他内容听起来确实是非常错误的。
将您的实体分组为具有聚合根的较大实体完全取决于您的业务运作方式。例如,PhotoGallery
可以是一个聚合根,其Photo
下有许多对象,或者两者都PhotoGallery
可以Photo
是单独的聚合根。
例如,您可能经营一家照片开发公司,照片总是作为一个完整的PhotoGallery
(1 个聚合根)收集、处理和处理。
或者您可能会运行一个社交网站,其中 aPhoto
可以共享和常用,而无需加载整个画廊(2 个聚合根)。
因此,这完全取决于您以及您的业务领域的规定。你总是可以先试一试,尝试一种方式,看看结果如何,然后再重构。