Details zu anzuwendenden Mustern

Bei dem Beispiel für anzuwendende Muster handelt es sich um eine Gruppe von 8 Mustern. Bezeichnung und Funktion dieser Muster sind an allgemein bekannten Mustern angelehnt.* Einige der Muster, die sogenannten Mikromuster, werden von anderen Mustern mit höherer Granularität (auch Körnigkeit genannt) verwendet.

Muster für abstrakte Factory

(Fünf Parameter, fünf Parameterabhängigkeiten, Wiederverwendung eines Musters)

Das Muster für abstrakte Factory basiert auf dem allgemein bekannten Muster für abstrakte Factory. Das Muster verwendet das Schnittstellenmuster wieder und veranschaulicht demzufolge die Delegierung von Abhängigkeiten beim Delegieren von Verhalten an das Schnittstellenmuster. Anders als beim gängigen Muster für abstrakte Factory implementieren jedoch alle konkreten Produkte alle gebundenen Schnittstellen der abstrakten Produkte. Es veranschaulicht die Verwendung von Parameterabhängigkeiten zur Aufrechterhaltung der Semantik des Musters beim Binden zusätzlicher Argumente an das Muster. Wie das Singleton-Muster, das Musterinstanzen nicht über Collaborationen darstellt, weicht auch dieses Muster vom Herkömmlichen ab, da es Pakete verwendet. Die Instanzen dieses Musters sind Pakete.

Delegierungsmuster

(Zwei Parameter, eine Parameterabhängigkeit, Wiederverwendung von drei Mustern)

Das Delegierungsmuster verfügt über zwei Parameter: einen Parameter für die Weiterleitungsfunktion (dem Delegierenden) und einen Parameter für den im Delegierungsmuster enthaltenen Delegierten. Die Weiterleitungsfunktion delegiert Operationen, die über die Delegiertenschnittstelle definiert sind und von der Weiterleitungsfunktion in einer Instanz des Delegiertentyps implementiert werden. Das Muster veranschaulicht die Verwendung von Filtern für das Delegiertenmapping zum Anpassen der Namen der Schlüsselwörter, die an die über die Wiederverwendung des Musters für Schlüsselwortlisten erzeugten Instanzen gebunden sind. Zweck dieser Namensanpassung ist es nicht, eine sinnvolle Implementierung des Delegierungsmusters bereitzustellen. Diese Anpassung wurde in das Beispiel aufgenommen, um die Verwendung von Filtern für das Delegiertenmapping zu demonstrieren.

Muster für gerichtete Assoziationen

(Sechs Parameter, fünf Parameterabhängigkeiten, ein Mikromuster)

Bei dem Muster für gerichtete Assoziationen handelt es sich um ein weiteres eigenständiges Elementarmuster. Es stellt ein Mikromuster dar, das von anderen Mustern mit höherer Granularität verwendet wird. Das Muster für gerichtete Assoziationen verfügt über zwei Hauptparameter, die den Kontext für eine gerichtete Assoziation definieren. Zusätzlich sind fünf weitere Parameter von untergeordneter Bedeutung verfügbar, die die Gestaltung der Assoziation über eine Konfiguration des Assoziationstyps, der Aufgabenbereichsnamen und der Multiplizität erleichtern. Das Muster wird vom Delegierungsbeispielmuster wiederverwendet und ist ein Prototyp eines Musters, das viele weniger gebräuchliche Parametertypen beinhaltet. In der Definition dieses Musters werden Literalzeichenfolgen, ganze Zahlen und Musteraufzählungen verwendet. Der in dem Beispiel enthaltene Mustercode zur Bearbeitung dieser Literale und Aufzählungen ist für Autoren von Mustern sehr hilfreich, wenn es darum geht, sich die Entwicklung von Mustern anzueignen, die ähnliche Parametertypen aufweisen.

Implementierungsmuster

(Zwei Parameter, eine Parameterabhängigkeit, ein Mikromuster)

Bei dem Implementierungsmuster handelt es sich um ein eigenständiges Elementarmuster, das keine andere Muster für die Implementierung nutzt. Es stellt ein sehr einfaches Muster dar, das sicherstellt, dass eine UML-Implementierungsbeziehung von einem Implementierungsargument zu einem Schnittstellenargument vorliegt.

Schnittstellenmuster

(Zwei Parameter, eine Parameterabhängigkeit, Wiederverwendung eines Musters)

Bei dem Schnittstellenmuster handelt es sich um ein Muster, das von einigen anderen Beispielmustern wiederverwendet wird und selbst ein Muster für die Implementierung wiederverwendet. Das Implementierungsmuster ist ein sehr einfaches Elementarmuster (auch Mikromuster genannt), das vom Schnittstellenmuster verwendet wird, um sicherzustellen, dass das Implementierungsargument die Schnittstellenargumente implementiert. Das Schnittstellenmuster weist zwei Parameter auf: einen Parameter für die Schnittstelle und einen Parameter für die Implementierung. Es enthält ein Beispiel für ein elementares Delegiertenmapping, bei dem Musterdefinitionen verwendet und Musterabhängigkeiten delegiert werden. Es stellt ein sehr elementares, aber auch sehr zweckdienliches Muster dar, das auch in anderen Abschnitten der Dokumentation zu den Mustern wiederholt erwähnt wird. Dieses Muster veranschaulicht darüber hinaus, wie Musterdelegierte und angepasster Code zur Implementierung von Aktualisierungsmethoden für die Musterabhängigkeit miteinander kombiniert werden können. Das Implementierungsmuster wird wiederverwendet, um die Implementierungsbeziehung sicherzustellen. Der angepasste Code für die Aktualisierungsmethode stellt anschließend sicher, dass bei der Implementierung alle definierten Operationen bei den Schnittstellenargumenten implementiert werden.

Schlüsselwortlistenmuster

(Zwei Parameter, eine Parameterabhängigkeit, ein Mikromuster)

Bei dem Schlüsselwortlistenmuster handelt es sich um ein eigenständiges Elementarmuster, das keine anderen Muster für die Implementierung nutzt. Dieses Muster demonstriert darüber hinaus die Verwendung einer UML-Literalzeichenfolge und eines abstrakten UML-Metatyps als Parametertyp. Das Muster stellt außerdem über entsprechende Merkmale eine korrekte Mustersemantik beim Auflösen des Bindings von Argumenten und beim Auflösen von Musterinstanzen sicher. Das Schlüsselwortlistenmuster kann über die Sicht 'Musterexplorer' gezielt instanziiert werden, eignet sich jedoch vor allem dazu, von anderen Mustern über die Mechanismen zur Musterdelegierung wiederverwendet zu werden.

Singleton-Muster

(Keine Parameter)

Das Singleton-Muster basiert auf dem allgemein bekannten Singleton-Muster. Es stellt ein Beispiel für ein Muster ohne Parameter dar. Das Muster verfügt über einen impliziten Parameter, der gewissermaßen die Musterinstanz selbst darstellt. Dieses Muster stellt die Musterinstanzen als Klassen und nicht, wie eher üblich, als Collaborationen dar. Mit dem Singleton-Muster kann z. B. sichergestellt werden, dass es sich bei einer Klasse um die einzige Klasse handelt, indem Sie es in der Sicht 'Musterexplorer' auf die entsprechende Klasse ziehen und dort übergeben. Das Ziehen und Übergeben dieses Musters auf eine Diagrammoberfläche (in ein Paket) bewirkt, dass eine einmalig vorliegende Instanz existiert, und führt deshalb zur Erstellung einer neuen Klasse, die diese Instanz repräsentiert.

Strategiemuster

(Drei Parameter, zwei Parameterabhängigkeiten, Wiederverwendung von zwei Mustern)

Das Strategiemuster basiert auf dem allgemein bekannten Strategiemuster. Es verwendet das Schlüsselwortlistenbeispielmuster und das Schnittstellenbeispielmuster wieder. Das Muster enthält ein Beispiel für ein Parameterdelegiertenmapping. Es verfügt über drei Parameter: einen Parameter für die Strategieschnittstelle, einen Parameter für die konkrete Strategie und einen Parameter für den Kontext der Strategie. Um die Wiederverwendung des Schlüsselwortlistenmusters zu veranschaulichen, stellt das Muster sicher, dass das Schlüsselwort <<Strategy>> beim Argument für den Strategieschnittstellenparameter vorliegt. Das Schnittstellenmuster wird wiederverwendet, um sicherzustellen, dass die Strategieschnittstelle über die gebundenen Argumente des Parameters für die konkrete Strategie implementiert wird.

* Designmuster: Elemente wiederverwendbarer, objektorientierter Software, Gamma, Helm, Johnson and Vlissides (Addison-Wesley, 1995) Copyright (c) 1995 by Addison-Wesley Publishing Company, Inc. Alle Rechte vorbehalten.


Feedback