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()
出力
上記のプログラムは次の出力を生成します-
説明
これは、出力を実行する関数からの戦略のリストを提供します。この行動パターンの主な焦点は行動です。