2014-12-10 2 views
1

Правильно ли я считаю, что command в CQRS сильно отличается от команды от command pattern?Смущает команда из командного шаблона и команды в CQRS

Из того, что я читал, команда в CQRS является объектом передачи данных (DTO) без какого-либо поведения. Но команда в шаблоне команды по существу только имеет поведение?

Было бы разумно вызвать командный шаблон команды «обработчики». Что бы реализовать интерфейс Handler с методами execute() и undo() (так что довольно очевидно, что я реализую некоторую форму шаблона команды). И резерв Command для команд CQRS?

ответ

2

C в CQRS имеет смысл Измените модель, это не связанно с командой, хотя много раз приложение CQRS использует указанный шаблон, а также. CQRS относится только к моделям: имеет один подходящий для изменений (домен, бизнес) и более простой для запросов.

Ключевое слово 'зарезервировано', если вы говорите, что CQRS, каждый, кто знает смысл, будет знать, что это разные модели. Изменения могут быть вызваны командами, которые обрабатываются, но обычно ppl используют команду для всех сообщений, которые изменят модель (и События для всех сообщений, изображающих произошедшие изменения).

1

MikeSW является правильным. «C» в CQRS - это не то же самое, что команда в шаблоне команды. Обработчики команд также отличаются от команд с помощью методов «Выполнять». По сути, обработчик - это служба домена, ответственная за сбор всех тех, которые необходимы для выдачи команды домену.

Еще один момент, который следует отметить, состоит в том, что обычно команда не является DTO в том смысле, что это ведро свойств с геттерами и сеттерами. Они часто реализуются как непреложные классы. Это обеспечивает более надежную и предсказуемую систему, которую легче тестировать, и при необходимости использовать несколько потоков.

Более подробно об этом и виде на различные части типичной системы CQRS проверить CQRS - A Step-By-Step Guide to the Flow of a Typical Application

Упование вы считаете, что полезно.

+1

«По сути, обработчик - это служба домена». Не всегда. Очень часто это приложение. Но в качестве общих обработчиков команд «правило» можно рассматривать услуги. И я рассматриваю любое сообщение (команду и события) DTO без какой-либо инкапсуляции. – MikeSW

Смежные вопросы