Встречается на собеседованиях • сегодня

Что такое паттерн Стратегия (Strategy)

Паттерн Стратегия — это поведенческий паттерн проектирования, который позволяет определять семейство алгоритмов, инкапсулировать каждый из них и делать их взаимозаменяемыми. Позволяет изменять алгоритмы независимо от клиента, который их использует.

Пример на Python:

python
from abc import ABC, abstractmethod

class Strategy(ABC):
    @abstractmethod
    def execute(self, a, b):
        pass

class AddStrategy(Strategy):
def execute(self, a, b):
return a + b

class SubtractStrategy(Strategy):
def execute(self, a, b):
return a - b

class Context:
def init(self, strategy: Strategy):
self._strategy = strategy

text
def execute_strategy(self, a, b):
    return self._strategy.execute(a, b)

Использование

context = Context(AddStrategy())
print(context.execute_strategy(5, 3)) # 8

context._strategy = SubtractStrategy()
print(context.execute_strategy(5, 3)) # 2

text

**Преимущества:**
- Избегание условных операторов (if/else)
- Легкость добавления новых стратегий
- Возможность динамической смены алгоритмов

**Применение:** Когда нужно использовать разные варианты одного алгоритма или когда есть множество похожих классов, отличающихся только поведением.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы