📅  最后修改于: 2020-11-07 09:08:15             🧑  作者: Mango
策略模式是一种行为模式。策略模式的主要目标是使客户能够选择不同的算法或过程来完成指定的任务。可以为所提到的任务交换不同的算法而不会带来任何复杂性。
当访问外部资源时,可以使用此模式来提高灵活性。
下面显示的程序有助于实施策略模式。
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()
上面的程序生成以下输出-
它提供了功能的策略列表,这些功能执行输出。这种行为模式的主要焦点是行为。