Патерн Strategy визначає набір алгоритмів схожих за родом діяльності, інкапсулює їх в окремий клас і робить їх замінними. Патерн Strategy дозволяє підміняти алгоритми без участі клієнтів, які використовують ці алгоритми.
Для реалізації необхідно:
- Структура Context, що представляє собою контекст виконання тієї чи іншої стратегії;
- Абстракція Strategy, що визначає інтерфейс різних стратегій;
- Структура BubbleSort, реалізує одну із стратегій, представляє собою алгоритми, спрямовані на досягнення певної мети;
- Структура InsertionSort, реалізує одну із стратегій, представляє собою алгоритми, спрямовані на досягнення певної мети.