Шаблон проектирования команд - является ли Invoker необязательным?

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

Или это наоборот? Если клиенту необходимо выполнить команду синхронно, он будет ссылаться на команду, используя интерфейс базового класса, но будет создавать конкретную команду и получателя. Всякий раз, когда клиенту потребуется выполнить команду, клиент просто вызовет метод execute для переменной команды базового класса? Когда возникнет необходимость в некоторой дополнительной логике того, когда должна выполняться команда, будет использоваться класс Invoker, чтобы эта дополнительная логика и клиент взаимодействовали с объектом Invoker для выполнения команды?

Ответы на вопрос(2)

Ваш ответ на вопрос