DDD处理以下场景的方法是什么:
Order Create屏幕并开始使用OrderItems创建新的OrderProductX并添加数量OrderItem for ProductX是在Order上创建的,用户继续添加另一个产品Order之前,管理员会更改ProductX的价格。假设Product和Order/OrderItem是单独的聚合体,甚至是独立的有界上下文,那么这是如何处理的呢?
我可以想到几种选择:
解决这一问题的正确的DDD/微服务方法是什么?
发布于 2020-12-12 14:48:54
解决这一问题的正确的DDD/微服务方法是什么?
一般的答案是,你让时间成为你的定价模型的一个明确的部分。对产品目录进行的价格更改有一个生效日期,这意味着您可以通过对订单中的时间进行建模,就购物者在订单时看到的价格达成完全一致。
这可能会引入QuotedPrice作为独立于目录价格的东西的概念,在目录价格中,报价承诺在一定时间内保持价格。
为了全面解决这类问题,以下是三份重要的文件供检讨:
发布于 2020-12-12 22:16:52
我认为解决这一问题的方法之一就是事件。正如您所说的,Product和Order可以是最不独立的聚合,我会保持它们松散耦合。将它们放在一个单一的总根中将违背开放/封闭和单一责任原则。
如果Product更改,它可以引发一个ProductChanged事件,也可以引发一个Order事件。
根据这些域对象是在同一个服务中还是在不同的服务中,您可以创建域事件或集成事件。阅读更多关于它的这里。
从上述链接:
域事件是您希望同一域(进程中)的其他部分注意到的域中发生的事情。通知的部分通常会对事件做出某种反应。
我认为这完全符合你的情况。
https://stackoverflow.com/questions/65262165
复制相似问题