策略設計模式

策略模式是一種行爲模式。 策略模式的主要目標是使客戶能夠從不同的算法或程序中進行選擇以完成指定的任務。 不同的算法可以交換出入,而不會對上述任務產生任何影響。

當訪問外部資源時,可以使用此模式來提高靈活性。

如何實施策略模式?

有關如何使用Python實現策略模式,請參考以下代碼 -

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

執行上述程序生成以下輸出 -

策略設計模式

解釋說明

它提供執行輸出的函數的策略列表。 這種行爲模式的主要焦點是行爲。