目录

Python Design Patterns - Strategy

策略模式是一种行为模式。 策略模式的主要目标是使客户端能够从不同的算法或过程中进行选择以完成指定的任务。 可以交换不同的算法,而不会对上述任务产生任何复杂性。

当访问外部资源时,此模式可用于提高灵活性。

如何实施战略模式?

下面显示的程序有助于实施战略模式。

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

输出 (Output)

上述程序生成以下输出 -

战略模式

说明 (Explanation)

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

↑回到顶部↑
WIKI教程 @2018