策略模式是一種行為模式。 策略模式的主要目標是使客戶能夠從不同的演算法或程式中進行選擇以完成指定的任務。 不同的演算法可以交換出入,而不會對上述任務產生任何影響。
當存取外部資源時,可以使用此模式來提高靈活性。
有關如何使用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()
執行上述程式生成以下輸出 -
解釋說明
它提供執行輸出的函式的策略列表。 這種行為模式的主要焦點是行為。