gpt4 book ai didi

java - 聚合对象和边界

转载 作者:行者123 更新时间:2023-12-02 07:29:41 25 4
gpt4 key购买 nike

我对聚合对象感到困惑,并且只有聚合对象才有存储库,因为我不知道如何正确编码。

假设您有一个 UserQuestionQuestionLog 实体。我不明白如何设置应该在聚合对象中放入多少内容的边界。您可以说,如果没有用户,我的系统中就不会存在任何问题,如果没有附加问题,问题日志就不会存在。那么 user 会是聚合根吗?

例如,您将如何添加问题日志?
对我来说,你似乎最终得到了很多嵌套等。User.addQuestionLog?我不明白当它应该是一个聚合并被视为一个单元时,边界在哪里?对我来说,更自然的是,User 是一个聚合,Question 是另一个聚合。但是我不明白如何真正知道这一点。

问题也可以有类别,类别是否也是问题的一部分?为什么/为什么不呢?如何发现它们?

最佳答案

不要考虑对象,DDD 就是现实生活。

真正的问题是:

  • 如果没有 Y,X 可以存在吗?
  • Y 是 X 的一部分吗?

因此:

  • 用户是否可以毫无疑问地存在?
  • 如果用户退出,问题是否仍然可用?
  • 日志是用户的一部分吗? 没有
  • 日志是问题的一部分吗? (因为它属于用户,但不是用户的一部分)
  • 类别是问题的一部分吗? 通常是

所以我们最终得到三个根聚合。

类别是值对象

关于java - 聚合对象和边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13087274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com