Глосарій

Strategy Pattern

Strategy — патерн, що виносить змінювану поведінку в окремий клас (стратегію) і дозволяє підмінювати її в runtime. Клас залежить від інтерфейсу стратегії, а не від конкретної реалізації.

Приклад

interface SortStrategy {
  sort(array $data): array;
}
class QuickSort implements SortStrategy { ... }
class MergeSort implements SortStrategy { ... }

class Sorter {
  public function __construct(private SortStrategy $strategy) {}
  public function sort(array $data): array {
    return $this->strategy->sort($data);
  }
}

Коли застосовувати