来自维基百科的Citate:“CQS非常适合面向对象的方法,但也可以在面向对象的编程之外应用。对于副作用和返回值的分离,没有任何内在的面向对象,以及所以CQS可以有利地应用于任何需要推理副作用的编程范例“。
我需要使用CQRS模式在非OOP语言中创建模块化程序的简单示例。
维基百科中的那篇文章有一些代码块,但没有解释它们之间的交互。
答案 0 :(得分:0)
CQS与程序是否模块化无关。它只指定修改值的函数不应该返回值,或者如果它返回一个它不应该修改它的值。
例如
int x;
int increment()
{
x = x + 1;
return x;
}
增加一个整数并返回指向它的指针将破坏CQS。相反应该是两个函数,
int x;
void increment() { x = x + 1; }
int value() { return x; }