【发布时间】:2016-10-03 15:20:56
【问题描述】:
我正在努力使用我的读取模型,因为它是域逻辑和读取模型之间的一种混合。想象一下获取酒店或航空公司的报价。在我的例子中,它正在运输。要获得报价,您需要阅读现有的费率表,然后计算费率。您可能会将其记录为报价,最终变成订单,但获取报价部分本质上是一个读取,具有一些逻辑(即获取当前燃料费率的服务)来考虑费率。聚合将是一个报价。
那么您会使用读取模型来获取合同/费率表,并将其映射到域吗?请记住,读取将被优化,它不仅仅是一个简单的 GetByID...而且最好来自读取存储以提高性能。
【问题讨论】:
-
如果引号是你的领域模型中的第一类实体——如果没有特别的证据,我希望它们是——那么产生一个引号就是一种写。
-
是的,生产它们是一种写作,但获取生产它们所需的信息是个问题。这可能适用于任何写操作,您的逻辑依赖于其他聚合(即用户/帐户设置)来驱动域逻辑
-
报价如何失效?如果您读取的汇率很快就会发生变化怎么办?如果这无关紧要,那么只需在域中声明一个 RateService 接口,然后实现可以从任何地方获取数据,它就变得无关紧要了。
标签: domain-driven-design cqrs ddd-repositories