Как использовать CQRS на C или любом другом процедурном языке?

Цитата из Википедии: "CQS хорошо подходит для объектно-ориентированной методологии, но также может применяться вне объектно-ориентированного программирования. Нет ничего изначально объектно-ориентированного в разделении побочных эффектов и возвращаемых значений, и поэтому CQS может быть выгодно применен к любой парадигме программирования, которая требует рассуждений о побочных эффектах ".

Мне нужен простой пример использования шаблона CQRS для создания модульной программы на языке, отличном от ООП.

В этой статье в Википедии есть куски кода, но они не объясняют взаимодействие между ними.

1 ответ

CQS не имеет ничего общего с модульной программой или нет. Это только указывает, что функция, которая изменяет значение, не должна возвращать значение или, если она возвращает значение, она не должна была изменять его.

Например

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

который увеличивает целое число и возвращает указатель на него, нарушает CQS. Вместо этого должно быть две функции,

int x;
void increment() { x = x + 1; }
int value() { return x; }
Другие вопросы по тегам