Java Reference
In-Depth Information
x Beim Informationsfluss zwischen Kontext und Strategie entsteht ein höherer Kom-
munikationsaufwand gegenüber der herkömmlichen Implementierung der Algorith-
men im Kontext selbst.
4.12.6
Ähnliche Entwurfsmuster
Das Entwurfsmuster Strategie und das Dekorierer-Muster können das Verhalten ei-
nes Objekts ändern. Die Gesamtfunktionalität eines Kontextobjektes ändert sich durch
den Austausch der Strategie nicht, weil alle Strategien die gleiche Funktionalität reali-
sieren, allerdings hat jede Strategie ihre eigene Ausprägung. Beim Dekorierer-Muster
hingegen wird die Funktionalität eines Objektes geändert bzw. erweitert. Alle Strate-
gien realisieren eine gleichartige Funktionalität, hingegen kann jeder Dekorierer etwas
ganz anderes machen. Ein Dekorierer behält das Verhalten des zu dekorierenden Ob-
jekts bei und versieht dieses Objekt mit einer Zusatzfunktionalität. Beim Strategiemus-
ter hingegen wird von der Umgebung dieses Musters zielgerichtet das Kontextobjekt
mit einer anderen Strategie versehen (kompletter Austausch eines Algorithmus). Damit
wird keine Zusatzfunktionalität erzeugt, sondern es findet ein Austausch eines gesam-
ten Algorithmus für das Kontextobjekt statt.
Das Entwurfsmuster Schablonenmethode befasst sich auch mit der Änderung eines
Algorithmus. Eine Schablonenmethode legt aber das Grundgerüst eines Algorithmus
statisch fest und erlaubt nur den Austausch einzelner Schritte des Algorithmus in ver-
schiedenen Unterklassen. Eine Kontextklasse benutzt im Falle des Strategie-Musters
den Algorithmus, ohne ihn überhaupt - also auch nicht schablonenhaft - selbst zu im-
plementieren. Kurz und gut, der gesamte Algorithmus wird ausgetauscht, ohne, dass
es eine Aussage über die Struktur des Algorithmus gibt. Das Strategie-Muster verwen-
det die Aggregation anstelle der statischen Vererbung, ist also objektbasiert und nicht
klassenbasiert wie das Entwurfsmuster Schablonenmethode. Durch die Aggregation
wird die Implementierung nicht zur Kompilierzeit, sondern zur Laufzeit austauschbar.
Das Entwurfsmuster Strategie ist dem Entwurfsmuster Zustand sehr ähnlich. Sowohl
das Klassendiagramm als auch die Implementierung sind identisch, aber nicht die In-
terpretation. Während beim Zustandsmuster ein Kontextobjekt seine Anfragen an ein
Objekt der Klasse Zustand , das seinen aktuellen Zustand repräsentiert, richtet, wird
beim Strategie-Muster eine spezifische Anfrage eines Kontextobjekts an ein anderes
Objekt gesandt, das eine Strategie (Algorithmus) zum Ausführen der Anfrage reprä-
sentiert.
Search WWH ::




Custom Search