Глоссарий

Command Pattern

Command — паттерн, инкапсулирующий запрос в виде объекта. Отправитель не знает, кто и как выполнит команду — он просто вызывает execute(). Это позволяет ставить команды в очередь, логировать, отменять (undo).

Участники

Пример

interface Command {
  public function execute(): void;
  public function undo(): void;
}

class SendEmailCommand implements Command {
  public function execute(): void { /* отправить */ }
  public function undo(): void { /* отменить */ }
}

class CommandBus {
  private array $history = [];
  public function dispatch(Command $cmd): void {
    $cmd->execute();
    $this->history[] = $cmd;
  }
}

Где используется

CQRS (Command Bus), очереди задач, транзакционный скрипт, undo/redo в редакторах.