Reciver - Содержит в себе набор некой функциональности
Command - Содержит в себе алгоритм реализации определенного действия, с помощью использования функциональности заложенной в Reciver
Client - Знает как создать команду и какой Reciver ей подсунуть
Invoker - Выполняет конкретную команду
Тогда возникает вопрос - а зачем он собственно нужен, если мы и в клиенте можем вызвать execute.
Во первых не всегда бывает что команда вызывается там где создается. Во вторых Invoker содержит механизмы выполнения всех команд, т.е. в нем например может быть форматирование результата выполнения команд и прочие действия связанные с выполнением ВСЕХ команд приложения.