Python Design Patterns - Strategie
Das Strategiemuster ist eine Art Verhaltensmuster. Das Hauptziel des Strategiemusters besteht darin, dem Kunden die Auswahl aus verschiedenen Algorithmen oder Verfahren zur Ausführung der angegebenen Aufgabe zu ermöglichen. Für die genannte Aufgabe können verschiedene Algorithmen ohne Komplikationen ein- und ausgeschaltet werden.
Dieses Muster kann verwendet werden, um die Flexibilität beim Zugriff auf externe Ressourcen zu verbessern.
Wie implementiere ich das Strategiemuster?
Das unten gezeigte Programm hilft bei der Implementierung des Strategiemusters.
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()
Ausgabe
Das obige Programm erzeugt die folgende Ausgabe -
Erläuterung
Es enthält eine Liste von Strategien aus den Funktionen, die die Ausgabe ausführen. Der Hauptfokus dieses Verhaltensmusters liegt auf dem Verhalten.