Java Reference
In-Depth Information
Objekte (Gruppen von Objekten) gleich wie einzelne einfache oder primitive Objekte,
sogenannte Blätter, zu behandeln. Dadurch wird der Aufwand im Client für die Ver-
waltung der resultierenden Baumstruktur verringert.
Die Grundlage des Kompositum-Musters ist die Definition einer abstrakten Klasse
Knoten , deren Verhalten durch ihre Schnittstelle und ihre Verträge festgelegt wird.
Eine Kompositum-Klasse ist von der abstrakten Klasse Knoten abgeleitet. Ein Kom-
positum-Objekt kann auf Grund des Klassendiagramms in Bild 4-20 gleichzeitig meh-
rere Objekte vom Typ Knoten aggregieren. An die Stelle einer Referenz auf ein Ob-
jekt der Klasse Knoten kann nach dem liskovschen Substitutionsprinzip eine Referenz
auf ein Objekt einer von der Klasse Knoten abgeleiteten Klasse treten, wenn der Ver-
trag der Klasse Knoten beim Überschreiben eingehalten wird.
Eine Blatt-Klasse ist ebenfalls von der abstrakten Klasse Knoten abgeleitet, kann aber
im Gegensatz zu einer Kompositum-Klasse keine Knoten aggregieren. Objekte von
Blatt-Klassen - also Blätter - stellen somit Abschlusselemente einer Baumstruktur dar.
Damit ist es leicht, geschachtelte Objektstrukturen (Bäume) zu bilden.
Ein Baum besteht aus konkreten Objekten und ein Objekt ist ent-
weder eine Instanz einer Kompositum- oder einer Blatt-Klasse.
Das Kompositum-Muster ermöglicht es, eine Baumstruktur von
Objekten aufzubauen.
Die Unterscheidung, ob es sich bei einer Klasse der Baumstruktur um eine Blatt-Klas-
se oder eine Kompositum-Klasse handelt, erfolgt lediglich anhand der Tatsache, ob ein
Objekt dieser Klasse weitere Objekte der Baumstruktur aggregieren kann oder nicht.
Wird eine Nachricht an ein Kompositum versendet, so wird die
Nachricht zum einen lokal für das zusammengesetzte Objekt aus-
geführt und zum anderem an die Kinder weiterdelegiert ( Delega-
tionsprinzip ). Ist der Empfänger hingegen ein Blatt, so wird die
Operation direkt ausgeführt, da das Blatt keine Kinder hat.
4.7.3.1 Klassendiagramm
Das Klassendiagramm in Bild 4-20 zeigt, dass eine Klasse Blatt und eine Klasse
Kompositum von einer abstrakten Klasse Knoten abgeleitet sind und dass ein Objekt
der Klasse Kompositum mehrere Objekte vom Typ Knoten aggregieren kann:
Search WWH ::




Custom Search