Паттерн "Команда" (Command) - это поведенческий паттерн проектирования, который превращает запрос в самостоятельный объект, который содержит всю информацию об этом запросе. Такое преобразование позволяет:
- Параметризовать клиентские объекты различными запросами
- Ставить запросы в очередь или логировать их
- Поддерживать отмену операций
Основные участники паттерна:
- Команда (Command): Объявляет интерфейс для выполнения операции.
- Конкретная команда (Concrete Command): Реализует интерфейс
Command и определяет привязку между получателем и действием. Выполняет действие, вызывая методы получателя.
- Получатель (Receiver): Класс, который знает, как выполнить необходимые действия.
- Инициатор (Invoker): Объект, который запрашивает выполнение команды. Не знает ничего о конкретной команде или получателе.
python
Паттерн "Команда" полезен при необходимости:
- Отложенного выполнения операций: Возможность выполнения команд в будущем.
- Очереди команд: Построение последовательности команд для выполнения.
- Отмены операций (undo): Сохранение состояния команд для их отмены.
- Логирования операций: Запись истории выполненных команд.