Семейство взаимозаменяемых алгоритмов, инкапсулированных в отдельные классы. Выбор стратегии в рантайме.
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).