Das Design-Pattern Composite abstrahiert Datenstrukturen um einzelne Objekte zu Baumstrukturen zusammenzusetzten.
Bestandteile einer Komponente
- Ein (oft abstrakte) Basisklasse (Component)
- Repräsentiert elementare und zusammengesetzte Objekte (Container)
- Stellt einheitliche Schnittstelle für elementare Objekte und Container zur Verfügung
- Elementare Objekte (von der Basisklasse abgeleitet)
- Containerklasse(n), die die Menge von Objekten der Basisklasse aufnehmen
Beispiel
Composite.java
class MenuEntry
{
public MenuEntry
(String name
) {
this.name = name;
}
return name;
}
}
public class Menu extends MenuEntry
{
MenuEntry[] ent;
int entryCnt;
super(name);
this.ent = new MenuEntry[maxElements];
entryCnt = 0;
}
public void add(MenuEntry entry) {
ent[entryCnt++] = entry;
}
for(int i=0; i<entryCnt; ++i) {
ret+=(i!=0 ?“,“ : ““)+ent[i].toString();
}
return ret + “)“;
}
}
{
public static void main
(String[] args
)
{
filemenu.add(new MenuEntry(“Neu“));
filemenu.add(new MenuEntry(“Laden“));
filemenu.add(new MenuEntry(“Speichern“));
confmenu.add(new MenuEntry(“Farben“));
confmenu.add(new MenuEntry(“Fenster“));
confmenu.add(new MenuEntry(“Pfade“));
filemenu.add(confmenu);
filemenu.add(new MenuEntry(“Beenden“));
}
}
Verwandte Links