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()
输出
上述程序产生了以下输出 –
解释
它提供了一个来自函数的策略列表,该列表执行输出。这种行为模式的主要焦点是行为。