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.