Я сейчас читаю " Шаблон действий / исполнителей " на MSDN, и я вынужден не согласиться с предпосылкой, что шаблоны команд и действий / исполнителей совпадают.
Из описания шаблона команды на SourceMaking.com:
- Инкапсулирует запрос как объект, что позволяет вам параметризировать клиентов с различными запросами, запросами очереди или журнала и поддерживать отмену операций.
- Повысить "вызов метода для объекта" до полного состояния объекта.
- Объектно-ориентированный обратный вызов
Из статьи MSDN о шаблоне Action / Executor:
Шаблон Action / Executor определяет стратегию для сопоставления вариантов использования с кодом, обеспечивая лучшую видимость и гибкость. Кроме того, он решает проблемы загрязнения сущностей и пропускает правильное использование транзакций.
Разница заключается в том, что «действие» заключает в себе один или несколько шагов, которые при успешном выполнении передают управление другому объекту, ответственному за знание того, как сохранить эти изменения в базе данных, веб-службе или файловом хранилище. Действие отделено от того, как оно выполняется / сохраняется.
«Команда» ощущается как половина шаблона Action / Executor - «действие» кажется синонимом «команды». Шаблон Action / Executor делает еще один шаг вперед и описывает еще одну проблему, ответственность за которую заключается в том, чтобы взять изменения, сгенерированные «действием» или «командой», и сохранить их в каком-то месте.