如何在DDD中嵌套实体

时间:2012-02-22 21:14:18

标签: java java-ee domain-driven-design

我将StudentDriver作为聚合根。每个StudentDriver可能有多个DrivingLog,每个DrivingLog可能有多个DrivingRecords。

由于他们彼此相连,我认为是对的。但是,我不明白如何添加新的驾驶记录。我是否调用了studentdriver.addNewDrivingRecordToDrivingLog(...)或者我是否先从用户那里获得了驾驶记录,然后将驾驶记录添加到此处。我的意思是,方法名称变得非常长,我不明白你应该如何访问元素。

有人可以解释你应该如何与StudentDriver的成员互动,即使这个聚合是正确的吗?

1 个答案:

答案 0 :(得分:1)

  

我是否调用studentdriver.addNewDrivingRecordToDrivingLog(...)或者我是否首先从用户那里获得了驾驶记录,然后将驾驶记录添加到此。我的意思是,方法名称变得非常长,我不明白你应该如何访问元素。

看起来像获取DrivingLog实例然后添加记录会更好,但这似乎是你应该自己解决的事情,因为我们对你的域名不够了解。这两种方法都不违反任何DDD规则。如果您不喜欢它,请尝试一个并稍后更改它(即代码味道,测试很难等)。 DDD代码应该随着您对域的理解而不断改进。在这种情况下确实没有对错。