策略模式是一种行为模式。 策略模式的主要目标是使客户能够从不同的算法或程序中进行选择以完成指定的任务。 不同的算法可以交换出入,而不会对上述任务产生任何影响。
当访问外部资源时,可以使用此模式来提高灵活性。
如何实施策略模式?
有关如何使用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()
执行上述程序生成以下输出 -
解释说明
它提供执行输出的函数的策略列表。 这种行为模式的主要焦点是行为。