Python Tasarım Modelleri - Strateji

Strateji kalıbı bir tür davranış kalıbıdır. Strateji modelinin ana amacı, müşterinin belirtilen görevi tamamlamak için farklı algoritmalar veya prosedürler arasından seçim yapmasını sağlamaktır. Belirtilen görev için herhangi bir komplikasyon olmadan farklı algoritmalar takas edilebilir ve çıkarılabilir.

Bu model, dış kaynaklara erişildiğinde esnekliği artırmak için kullanılabilir.

Strateji modeli nasıl uygulanır?

Aşağıda gösterilen program, strateji modelinin uygulanmasına yardımcı olur.

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()

Çıktı

Yukarıdaki program aşağıdaki çıktıyı üretir -

Açıklama

Çıktıyı yürüten işlevlerden stratejilerin bir listesini sağlar. Bu davranış modelinin ana odağı davranıştır.