Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 动态视图模型_Oop_Domain Driven Design_Viewmodel_Cqrs - Fatal编程技术网

Oop 动态视图模型

Oop 动态视图模型,oop,domain-driven-design,viewmodel,cqrs,Oop,Domain Driven Design,Viewmodel,Cqrs,如果我打算使用CQRS原则将我的应用程序分成读写端,您将如何处理具有“动态”读模型场景的情况?例如,我有一个包含多个读取属性(id、标题、slug等)的产品,但为了向用户显示它,我需要传递由域服务计算的价格(我向其传递访问者国家和货币)?我无法将此价格存储在数据库中,因为用户可以随时更改货币+价格经常更改。因此,我的最终产品视图模型基本上应该是原始SQL列(id、title、slug)和计算价格的组合。我应该使用从数据库中获得的相同视图模型并使用内容丰富模式,还是应该为我的组合创建新的视图模型?

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

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

CQRS的本质是,您的查询不符合任何这样的逻辑

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