Шаблон команды инкапсулирует запрос как объект, тем самым позволяя вам параметризовать другие объекты с помощью различных запросов, запросов очереди или журнала и поддерживать отменяемые операции.
Он отделяет запросы действия от объекта, который фактически выполняет действие: объект command инкапсулирует запрос на выполнение чего-либо для определенного объекта, вызывающий получает команду от клиента и отправляет команду получателю.
Например, когда клиент делает заказ, официантка принимает заказ, начинает подготовку заказа (в заказе есть все инструкции для поваров), а повара следуют инструкциям по заказу.
Несколькими примерами этого шаблона могут быть программы с несколькими потоками, выполняющие команды в очереди заданий и записывающие список команд на диск, чтобы при сбое можно было возобновить выполнение всех предыдущих команд.
Оригинал: “https://dev.to/danlee0528/design-pattern-the-command-pattern-239e”