Python Design Patterns - Strategia
Il modello strategico è un tipo di modello comportamentale. L'obiettivo principale del pattern strategico è consentire al cliente di scegliere tra diversi algoritmi o procedure per completare l'attività specificata. Diversi algoritmi possono essere scambiati dentro e fuori senza complicazioni per l'attività menzionata.
Questo modello può essere utilizzato per migliorare la flessibilità quando si accede a risorse esterne.
Come implementare il modello strategico?
Il programma mostrato di seguito aiuta nell'implementazione del modello di strategia.
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() 
    Produzione
Il programma di cui sopra genera il seguente output:
 
    Spiegazione
Fornisce un elenco di strategie dalle funzioni, che eseguono l'output. L'obiettivo principale di questo modello di comportamento è il comportamento.
