mry-backend icon indicating copy to clipboard operation
mry-backend copied to clipboard

关于DDD聚合根创建参数特别多的问题

Open zjpjohn opened this issue 1 year ago • 1 comments

仔细阅读了您的码如云的后端代码以及DDD的相关文章,也阅读了许多DDD的相关文章,关于聚合根创建参数特别多(比如创建聚合根需要10个以上的参数)没有找到一个统一的解决方案。目前看到有的项目直接将command作为值对象放在领域层;有的直接在聚合根构造函数或聚合根创建工厂直接列举所有参数(这种方式对于参数比较少还比较合适);有的直接向领域层直接聚合根构造函数或者聚合根创建工厂传递应用层XXXCreateComand(这种方式感觉有些偷懒不是很优雅,造成应用层和领域层高度耦合),关于这个问题向作者请教,有没有好的建议或者解决方式。 举例如下,码如云代码中member在构造工厂中创建 image 此时构造工厂创建方法参数已经达到7个,如果后续创建场景变化参数更多,那么直接将参数罗列在方法入参内对调用方也会造成一定的困扰甚至灾难。

zjpjohn avatar Sep 30 '23 03:09 zjpjohn

这个问题也困惑着我,首先我认为command直接传入领域层是不好的,一种做法是将command转换为领域层中的一个DTO,但是此时这个DTO仅仅是为了传数据了,有点多余;如果能将command转换为领域层中的值对象应该是最好的。

davenkin avatar Oct 10 '23 00:10 davenkin