Java Reference
In-Depth Information
4.12 Das Verhaltensmuster Strategie
4.12.1
Name/Alternative Namen
Strategie (engl. strategy oder policy).
4.12.2
Problem
Das Strategie-Muster soll es erlauben, dass eine Strategie, die in Form eines Algorith-
mus vorliegt, komplett ausgetauscht wird. Es soll also das Verhalten eines Objekts
flexibilisiert werden und das jeweils passende Verhalten verwendet werden, ohne,
dass die Klasse des den Algorithmus nutzenden Objekts geändert werden muss. Ein
Objekt, das den auszutauschenden Algorithmus nutzt, wird im Folgenden als Kontext-
objekt bezeichnet. Ein Kontextobjekt darf nicht von einer speziellen Implementierung
des Algorithmus abhängen.
Das Strategie-Muster soll es erlauben, dass ein ganzer Algorith-
mus in Form einer Kapsel ausgetauscht wird.
4.12.3
Lösung
Damit die verschiedenen Algorithmen einer Gruppe von miteinander verwandten Algo-
rithmen austauschbar werden, benötigen sie dasselbe Interface 60 , das im Folgenden
mit IStrategie bezeichnet wird. Jeder einzelne Algorithmus wird nun als soge-
nannte Strategie separat in einer eigenen Klasse gekapselt, um ihn als Kapsel aus-
tauschbar zu machen. Bei Einhaltung der Verträge kann jede der konkreten Strategien
an die Stelle des Interface IStrategie treten. Der jeweils zu einer bestimmten Zeit
benötigte Algorithmus wird von der Umgebung des Kontextobjektes ausgewählt.
Das Strategie-Muster zieht die alternativen Strategien heraus, ab-
strahiert sie durch ein Interface vom Typ IStrategie und kap-
selt sie jeweils in einem eigenen Objekt.
Das Entwurfsmuster Strategie ist ein objektbasiertes Verhaltensmuster, da es einen
Algorithmus in einem Objekt kapselt, das von einem anderen Objekt, dem Kontextob-
jekt, benutzt wird.
4.12.3.1 Klassendiagramm
Beim Strategie-Muster wird eine Strategie, die ein Kontextobjekt benutzt, in ein eige-
nes Objekt vom Typ IStrategie ausgelagert. Das Kontextobjekt wird mit der Strate-
60 Es besteht ebenfalls die Möglichkeit, das Strategie-Entwurfsmuster mit einer abstrakten Klasse an-
statt einer Schnittstelle als Abstraktion zu entwerfen.
Search WWH ::




Custom Search