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

    输出

    上述程序生成以下输出 -
    策略模式

    解释

    它提供了执行输出的函数的策略列表。这种行为模式的主要焦点是行为。