什么时候应该在聚合根中应用工厂方法?

Blu*_*eel 3 domain-driven-design factory aggregate

领域驱动设计建议我们应该通过使用工厂来创建聚合根来隐藏复杂性。我们可以通过以下方式来创建聚合根:

  1. 工厂类中的静态工厂方法
  2. 具有工厂方法的聚合根

我们在(1)和(2)之间做出选择的依据是什么?

pla*_*alx 5

当生成的代码更符合你的通用语言并且 AR 拥有一些可以简化创建过程的知识时,可以考虑在 AR 上使用工厂方法。

例如,如果在您的域中您可以向项目添加任务并且任务被建模为 AR,那么Task task = project.addTask(taskId, taskName);它比Task task = new Task(taskId, taskName, projectId);.