假设我正在实现一个使用事件源管理股票和投资组合的应用程序。我有以下命令:
CreatePortfolio
BuyStocks
SellStocks
ClosePortfolio
最后三个命令的处理需要股票价格。我通过 API 接收命令。我应该接受来自 API 的 DTO 中的股票价格,还是应该在将命令传递到应用程序的事件源核心之前在service组件中检索它?
我是否应该接受来自 API 的 DTO 内的股票价格
您收到的消息是否来自可信来源,并且永远不会提供与您自己收集的信息不同的信息?
那你可以考虑一下。
在大多数情况下,您需要自己获取所需的值。理想情况下,您可以在处理 I/O 的位置获取信息,并将信息传递到域逻辑(从根本上讲,域逻辑并不关心信息来自何处)。
在某些情况下,您不一定知道域逻辑将需要哪些信息,因此您可以 (a) 将请求信息的功能传递给域逻辑——通常以“域服务”的形式“或者 (b) 设计一个协议,以便您的域层可以在需要时请求信息,并让应用程序代码找出从哪里获取它。