Что такое Strategy?

Ответ

Семейство взаимозаменяемых алгоритмов, инкапсулированных в отдельные классы. Выбор стратегии в рантайме.

interface SortStrategy { public function sort(array $data): array; }
class QuickSort implements SortStrategy { ... }
class Context {
    public function __construct(private SortStrategy $strategy) {}
    public function setStrategy(SortStrategy $s): void { $this->strategy = $s; }
    public function execute(array $data): array { return $this->strategy->sort($data); }
}

Избегает условных веток по типу алгоритма. Часто через внедрение стратегии в конструктор (DI).

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.