Junior — Middle
83
¿Cómo se puede implementar el patrón estrategia en programación en Python?
Respuesta de la IA
sobes.tech AI
Паттерн стратегия позволяет менять алгоритмы поведения объекта во время выполнения, инкапсулируя их в отдельные классы или функции.
В Python это можно реализовать с помощью классов или функций, передаваемых как стратегии.
Пример с классами:
class Strategy:
def execute(self, data):
pass
class StrategyA(Strategy):
def execute(self, data):
return sorted(data)
class StrategyB(Strategy):
def execute(self, data):
return list(reversed(data))
class Context:
def __init__(self, strategy: Strategy):
self._strategy = strategy
def set_strategy(self, strategy: Strategy):
self._strategy = strategy
def do_action(self, data):
return self._strategy.execute(data)
context = Context(StrategyA())
print(context.do_action([3,1,2])) # [1, 2, 3]
context.set_strategy(StrategyB())
print(context.do_action([3,1,2])) # [2, 1, 3]
Так можно легко менять поведение объекта, не меняя его код.