Command, CommandHandler и CommandInvoker

Недавно я увидел новый шаблон (новый для меня) в проекте с открытым исходным кодом ASP.NET MVC 3, который содержит несколько Command, CommandHandler и CommandInvoker с их интерфейсами, и я не могу понять шаблон! Можете ли вы рассказать мне, что это за образцовое имя, и где я могу узнать об этом? И в чем его преимущества, пожалуйста? Спасибо заранее.

Обновление: Я говорю об этом проекте:

Галерея изображений с RavenDB

Ответ 1

Посмотрите на эту статью:

Между тем... на командной стороне моей архитектуры

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

Проект RavenGallery, однако, слишком мал, чтобы действительно увидеть преимущества этой модели команд/обработчиков. Эта модель начинает сиять, когда проект становится больше.

Более подробное обсуждение этой темы можно найти в главе 10 моей книги.

Ответ 3

Чтобы продолжить мысль Стивена, шаблон команда, обработчик, вызов предоставляет возможность вызывать команды, объект SOLID за один раз, которые могут вызываться непосредственно из пользовательского интерфейса или другого верхнего уровня, с которым пользователь или служба могут напрямую взаимодействовать.

Я полагаю, что его цель состоит в том, чтобы уменьшить сложность, обычно встречающуюся в приложениях N-уровня, где есть несколько уровней (т.е. уровень обслуживания, уровень DataAcces), требуемых для вызова команд (то есть сохранить объект в базе данных).

Из множества "ароматов" архитектуры, вот мое мнение: https://github.com/mrogunlana/command-handler-pattern