Как использовать 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; }