当前位置:  开发笔记 > 编程语言 > 正文

cqrs与cqs之间的差异

如何解决《cqrs与cqs之间的差异》经验,为你挑选了2个好方法。

我正在学习什么是CQRS模式,并且开始知道还有CQS模式

当我试图搜索时,我发现了很多图表,关于CQRS的信息但是没有发现很多关于CQS的信息

CQRS模式的关键点

在cqrs中,有一个要编写的模型(命令模型)一个要读取的模型(查询模型),它们是完全独立的.

在此输入图像描述

CQS如何与CQRS区分开来..?

两者都有区别的关键点是什么..?

任何援助将不胜感激 :)



1> David Hoerst..:

CQS(命令查询分离)和CQRS(命令查询责任分离)是非常相关的.您可以将CQS视为属于类或组件级别,而CQRS更多地处于有界上下文级别.

我倾向于认为CQS处于微观层面,而CQRS处于宏观层面.

CQS规定了用于查询或写入模型的单独方法:查询不会改变状态,而命令会改变状态但没有返回值.它由Bertrand Meyer设计,作为他在Eiffel编程语言方面的开创性工作的一部分.

CQRS规定了类似的方法,除了它更多的是通过您的系统的路径.查询请求从命令获取单独的路径.查询返回数据而不改变底层系统; 该命令改变系统但不返回数据.

Greg Young的组建了一个非常完善的写了什么CQRS是几年前,并进入CQRS是如何CQS的演变.几年前,本文档向我介绍了CQRS,我发现它仍然是一个非常有用的参考文档.



2> 小智..:

这是一个古老的问题,但我要回答一下。我不经常在StackOverflow上回答问题,所以如果我在社区范围之外做一些事情,例如链接到事物,写长答案等,请原谅我。

CQRS和CQS之间有很多区别,但是CQRS 在其定义内使用 CQS!让我们先定义两者,然后讨论差异。

CQS根据消息的返回值定义了两种类型的消息:没有返回值(void)指定这是一条命令;返回值(非void)指定此方法为查询。

命令更改信息

查询返回信息

命令更改状态。查询不。

现在是CQRS,它使用与“命令和查询”的CQS相同的定义。CQRS所说的是我们不希望使用Command和Query方法的对象。相反,我们需要两个对象:一个包含所有命令,一个包含所有查询。

总的来说,这个想法很简单。这一切后,这样做,事情变得有趣。在线上有很多演讲,我讨论了一些相关的属性(很抱歉,此处无法键入!)。

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有