战略模式是一种行为模式.策略模式的主要目标是使客户端能够从不同的算法或过程中进行选择以完成指定的任务.可以交换不同的算法,而不会出现上述任务的任何复杂情况.
此模式可用于提高访问外部资源时的灵活性.
如何实施策略模式?
下面显示的程序有助于实现策略模式.
import typesclass 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()
输出
上述程序生成以下输出 :
解释
它提供来自函数的策略列表,执行输出.这种行为模式的主要焦点是行为.