Sobes.tech
Назад к вопросам
Junior — Middle
64

Можешь привести пример, когда в коде применяется паттерн команд?

Ответ от нейросети

sobes.tech AI

Паттерн "Команда" (Command) используется, когда нужно инкапсулировать запрос как объект, позволяя параметризовать объекты с операциями, ставить операции в очередь, логировать их или поддерживать отмену.

Пример в Java: реализация кнопки, которая выполняет разные действия.

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

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

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

// Инициатор
class RemoteControl {
    private Command slot;
    void setCommand(Command command) { slot = command; }
    void pressButton() { slot.execute(); }
}

// Использование
public class Client {
    public static void main(String[] args) {
        Light light = new Light();
        Command lightOn = new LightOnCommand(light);
        RemoteControl remote = new RemoteControl();
        remote.setCommand(lightOn);
        remote.pressButton(); // Выведет: Свет включен
    }
}

Такой подход позволяет отделить объект, вызывающий операцию, от объекта, который её выполняет.