Існують системи, поведінка яких може визначатися згідно одному алгоритму з деякого сімейства. Всі алгоритми цього сімейства є спорідненими: призначені для вирішення спільних завдань, мають однаковий інтерфейс для використання і відрізняються тільки реалізацією (поведінкою). Користувач, попередньо налаштувавши програму на потрібний алгоритм (вибравши стратегію), отримує очікуваний результат. Як приклад, - додаток, призначений для компресії файлів використовує один з доступних алгоритмів: zip, arj або rar.
Об'єктно-орієнтований дизайн такої програми може бути побудований на ідеї використання поліморфізму. В результаті отримуємо набір родинних класів із загальним інтерфейсом і різними реалізаціями алгоритмів.

UML-діаграма класів. Програма стиснення файлів. Стандартний підхід на основі поліморфізму
1. Представленому підходу властиві такі недоліки:
2. Реалізація алгоритму жорстко прив'язана до його підкласу, що ускладнює підтримку і розширення такої системи.
Система, побудована на основі успадкування, є статичною. Замінити один алгоритм на інший в ході виконання програми вже неможливо.
Застосування патерну Strategy дозволяє усунути вказані недоліки.