Java

Описание:

Инкапсулируем поведенческие семейства алгоритмов в отдельные классы, реализующие общий интерфейс. Это позволяет изменять аспекты объекта во время выполнения программы.

Пример:

Коды классов:

UML-диаграмма:

Стратегия

Универсальный совет: отдавайте предпочтение интерфейсу, нежели абстрактному классу

Паттерн Стратегия