动态视图模型

时间:2014-12-30 13:45:55

标签: oop domain-driven-design viewmodel cqrs

如果我要使用CQRS原则将我的应用程序拆分为读写端,您将如何处理具有“动态”读取模型场景的情况?例如。我有一个产品,包括几个读取属性(id,title,slug等),但为了向用户显示它我需要传递由域服务计算的价格(我通过访问者国家和货币)?我无法将此价格存储在数据库中,因为用户可以随时随地更改其货币+价格经常变化。所以我的最终产品视图模型应该基本上是原始SQL列(id,title,slug)和计算价格的组合。我应该使用与数据库相同的视图模型并使用内容丰富模式,还是应该为我的复合创建新的视图模型?

1 个答案:

答案 0 :(得分:0)

更改产品的价格是一个COMMAND,它应该更新您存储在数据库中的价格,然后随时查询。

CQRS的本质是你的查询没有那样的逻辑。

对于货币转换,由于您说用户可以随时更改货币,因此您应查询整个货币汇率列表并自行在客户端进行计算。或者,您可以查询基本价格,然后查询当前费率。如果用户更改货币,您只需再次查询费率,但保持相同的基本价格。