如何在C或任何其他程序语言中使用CQRS?

时间:2014-03-03 10:09:35

标签: c cqrs procedural-programming

来自维基百科的Citate:“CQS非常适合面向对象的方法,但也可以在面向对象的编程之外应用。对于副作用和返回值的分离,没有任何内在的面向对象,以及所以CQS可以有利地应用于任何需要推理副作用的编程范例“。

我需要使用CQRS模式在非OOP语言中创建模块化程序的简单示例。

维基百科中的那篇文章有一些代码块,但没有解释它们之间的交互。

1 个答案:

答案 0 :(得分:0)

CQS与程序是否模块化无关。它只指定修改值的函数不应该返回值,或者如果它返回一个它不应该修改它的值。

例如

int x;
int increment()
{
  x = x + 1;
  return x;
}

增加一个整数并返回指向它的指针将破坏CQS。相反应该是两个函数,

int x;
void increment() { x = x + 1; }
int value() { return x; }