0

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

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

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

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

4

1 回答 1

2

不要考虑对象,DDD 是关于现实生活的。

真正的问题是:

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

因此:

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

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

类别是值对象

于 2012-10-26T14:35:01.100 回答