Я читал о шаблоне команд и думаю, что что-то упустил. Объект Command существует для абстрагирования от деталей объекта Receiver. Мне кажется, что мы могли бы просто остановиться на этом и удерживать ссылки на объекты Command для выполнения соответствующего метода в подходящее время.
Зачем же тогда нужен Invoker? Какие преимущества дает это дополнительное косвенное обращение? Мы уже скрыли детали Получателя за Командой, что побуждает затем скрывать Команду от клиента?