Sobes.tech
Back to questions
Junior — Middle
61

В чем заключается назначение и применение паттерна Command в программировании?

Answer from AI

sobes.tech AI

Паттерн Command предназначен для инкапсуляции запроса или операции в виде отдельного объекта. Это позволяет отделить отправителя команды от её исполнителя, а также реализовать такие возможности, как отложенное выполнение, отмена операций, логирование и очереди команд.

Применение паттерна удобно, когда нужно:

  • Отложить выполнение операции.
  • Реализовать отмену или повтор команд.
  • Сформировать сложные последовательности операций.
  • Упростить расширение функционала без изменения существующего кода.

Пример на Java:

// Интерфейс команды
interface Command {
    void execute();
}

// Конкретная команда
class LightOnCommand implements Command {
    private Light light;
    public LightOnCommand(Light light) { this.light = light; }
    public void execute() { light.turnOn(); }
}

// Получатель
class Light {
    void turnOn() { System.out.println("Свет включен"); }
}

// Клиент
public class RemoteControl {
    private Command command;
    public void setCommand(Command command) { this.command = command; }
    public void pressButton() { command.execute(); }
}