我有一个名为Order的集合,它有一个很大的字段列表(超过20个),业务已经将这些字段确定为强制字段。
没有这些强制字段,订单就不能处于有效状态。
在我的域层中,当我创建Order聚合时,涉及到一些域逻辑,它只需要这20个强制字段中的几个(域逻辑只需要5-6个)。
如果我纯粹遵循DDD的原则,并将这些强制值视为不变量,则必须使用所有字段创建Order域对象,其中大多数字段只需通过非空/空验证即可。确实有可能有更好的方法来处理这种情况。
那我的方法应该是什么?我是否应该使用域逻辑所需的5-6个字段来创建域对象?从业务角度看,这不意味着订单聚合处于无效状态吗?但是,如果使用一组较小的值创建域对象,则要简单得多。
我已经向Business咨询过,他们是否真的需要所有这些字段,是的,他们非常需要用所有这些强制字段创建一个订单。
发布于 2019-12-23 04:54:59
我在这里找到了我的问题的答案:
https://softwareengineering.stackexchange.com/questions/301928/aggregate-root-with-many-fields
从上面的链接:
想想看:当你从一个电子商务网站上订购一些东西的时候,你可能会在几个不同的步骤中填写你的订单,通过多个屏幕输入产品、运输信息、支付信息等等。订单是在两步之间保存的,尽管缺少充分填写订单所需的信息!唯一的区别是,在发出订单之前,它需要这些信息。这并不意味着不能创建.。
https://stackoverflow.com/questions/59421588
复制相似问题