Sobes.tech
Back to questions
Junior — Middle
60

Можете объяснить, что подразумевается под паттерном команда в программировании?

Answer from AI

sobes.tech AI

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

Основная идея — отделить объект, вызывающий операцию, от объекта, который её выполняет. Команда содержит всю информацию, необходимую для выполнения действия, включая метод и параметры.

Пример на C#:

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

// Конкретная команда
public class LightOnCommand : ICommand
{
    private Light _light;
    public LightOnCommand(Light light) { _light = light; }
    public void Execute() { _light.TurnOn(); }
}

// Получатель
public class Light
{
    public void TurnOn() { Console.WriteLine("Свет включен"); }
}

// Клиент
var light = new Light();
ICommand command = new LightOnCommand(light);
command.Execute();

Такой подход упрощает расширение и поддержку кода, особенно при реализации сложных сценариев управления.