Java Reference
In-Depth Information
Daneben gibt es noch die Klasse JFrame , die ebenfalls von der Klasse Container
abgeleitet ist, die aber nur als Wurzelelement für den äußeren Rahmen einer gra-
fischen Oberfläche genutzt werden kann und daher nicht als Kompositum-Klasse an-
gesehen werden kann.
Das folgende Codefragment zeigt, wie man in Swing die in Bild 4-23 skizzierte Ober-
fläche mit Objekten der genannten Klassen zusammensetzen kann. Die Layoutmana-
ger werden bei dieser Betrachtung außer Acht gelassen. Hier das bereits erwähnte
Codefragment:
// Blatt-Objekte erzeugen
JTextField textField = new JTextField ("Textfeld");
JButton button1 = new JButton ("Schaltflaeche 1");
JButton button2 = new JButton ("Schaltflaeche 2");
JButton button3 = new JButton ("Schaltflaeche 3");
JTable table = new JTable();
// Kompositum-Objekte erzeugen
JPanel panelRechts = new JPanel();
JPanel panelUnten = new JPanel();
// Struktur aufbauen
panelRechts.add (textField);
panelRechts.add (panelUnten);
panelUnten.add (button1);
panelUnten.add (button2);
panelUnten.add (button3);
// in aeusseren Rahmen einhaengen
JFrame frame = new JFrame ("Mein Fenster");
frame.add (table);
frame.add (panelRechts);
Was passiert nun, wenn man die obige Klassenhierarchie zugrunde legt und den
äußeren Rahmen vergrößert? Das Frame-Objekt vergrößert sich selbst und leitet den
Aufruf an alle Objekte, die in ihm enthalten sind, weiter. Durch die Weiterleitung geht
der Aufruf unter anderem an das Objekt panelRechts . Dieses Objekt ist selber ein
Kompositum-Objekt und leitet wiederum den Aufruf an alle enthaltenen Objekte weiter.
Dies geht rekursiv weiter, bis alle Elemente vergrößert sind.
4.7.6 Ähnliche Entwurfsmuster
Von der Struktur des Klassendiagramms her ist das Entwurfsmuster Kompositum sehr
ähnlich zu dem Dekorierer-Muster . Ein Klassendiagramm des Dekorierers ist quasi
ein Spezialfall des Klassendiagramms des Kompositum-Musters, dadurch dass ein
Dekorierer-Objekt nur ein einziges Objekt aggregieren kann. Es zeigen sich jedoch
Unterschiede in der Verwendung dieser beiden Muster: Während mit Hilfe des Deko-
rierer-Musters Funktionalität dynamisch gebildet werden kann, dient das Kompositum-
Muster dazu, Objekte zu einer hierarchischen Struktur zusammenzusetzen.
Das Muster Whole-Part [Bus98] ist sowohl vom Aufbau als auch von der Funktionalität
her sehr ähnlich dem Kompositum-Muster. Das Muster Whole-Part fordert aber im
Search WWH ::




Custom Search