Python 策略模式

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

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

 

如何实施策略模式?

下面显示的程序有助于实现策略模式。

# Filename : example.py
# Date : 2020-08-22
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()

 

输出

上面的程序生成以下输出:

Strategy Example 0
Strategy Example 1from execute 1
Strategy Example 2from execute 2

 

说明

它提供了功能的策略列表,这些功能执行输出。这种行为模式的主要重点是行为。

模板模式使用抽象操作在基类中定义基本算法,其中子类覆盖具体行为。模板模式将算法的轮廓保留在单独的方法中。此方法称为模板方法。以下是模板模式的不同功能:它定义了操作中算法的框架它包括子类,这些子类重新定义了算法的某些步 ...