Встречается на собеседованиях • сегодня
Как реализовать паттерн стратегия в Python
Паттерн Стратегия позволяет выбирать алгоритм во время выполнения программы, инкапсулируя их в отдельные классы.
python
from abc import ABC, abstractmethod
class Strategy(ABC):
@abstractmethod
def execute(self, data):
pass
class ConcreteStrategyA(Strategy):
def execute(self, data):
return sorted(data)
class ConcreteStrategyB(Strategy):
def execute(self, data):
return sorted(data, reverse=True)
class Context:
def init(self, strategy: Strategy):
self._strategy = strategy
text
def set_strategy(self, strategy: Strategy):
self._strategy = strategy
def execute_strategy(self, data):
return self._strategy.execute(data)Использование
data = [5, 2, 8, 1]
context = Context(ConcreteStrategyA())
print(context.execute_strategy(data)) # [1, 2, 5, 8]
context.set_strategy(ConcreteStrategyB())
print(context.execute_strategy(data)) # [8, 5, 2, 1]
text
Ключевые моменты:
1. Абстрактный класс Strategy определяет интерфейс алгоритмов
2. Конкретные стратегии реализуют этот интерфейс
3. Context хранит ссылку на стратегию и делегирует ей работу
4. Стратегию можно менять динамически через set_strategy()
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы