Patrones de diseño de Python: estrategia
El patrón de estrategia es un tipo de patrón de comportamiento. El objetivo principal del patrón de estrategia es permitir que el cliente elija entre diferentes algoritmos o procedimientos para completar la tarea especificada. Se pueden intercambiar diferentes algoritmos sin complicaciones para la tarea mencionada.
Este patrón se puede utilizar para mejorar la flexibilidad cuando se accede a recursos externos.
¿Cómo implementar el patrón de estrategia?
El programa que se muestra a continuación ayuda a implementar el patrón de estrategia.
import types
class StrategyExample:
def __init__(self, func = None):
self.name = 'Strategy Example 0'
if func is not None:
self.execute = types.MethodType(func, self)
def execute(self):
print(self.name)
def execute_replacement1(self):
print(self.name + 'from execute 1')
def execute_replacement2(self):
print(self.name + 'from execute 2')
if __name__ == '__main__':
strat0 = StrategyExample()
strat1 = StrategyExample(execute_replacement1)
strat1.name = 'Strategy Example 1'
strat2 = StrategyExample(execute_replacement2)
strat2.name = 'Strategy Example 2'
strat0.execute()
strat1.execute()
strat2.execute()
Salida
El programa anterior genera la siguiente salida:
Explicación
Proporciona una lista de estrategias de las funciones que ejecutan la salida. El foco principal de este patrón de comportamiento es el comportamiento.