Die Welt der Objektorientierten Programmierung kann manchmal ganz schön verwirrend sein. Insbesondere, wenn es um die Verknüpfung von Klassen geht. Da gibt es Assoziationen, Aggregationen und Kompositionen. Aber was bedeuten diese Begriffe überhaupt und wie unterscheiden sie sich?
Fallstudie
Um das etwas greifbarer zu machen, betrachten wir eine Fallstudie. Die Firma ProfiSoft erhält von verschiedenen Kunden Aufträge. Es gelten bestimmte Geschäftsregeln für Kunden und Aufträge. Zum Beispiel müssen zu jedem Auftrag bestimmte Daten gespeichert werden, wie die Auftragsnummer, die Art des Auftrags, die Anzahl der benötigten Stunden und der Stundensatz. Ebenso müssen bestimmte Daten von Kunden erfasst werden, wie der Name, die Adresse und die Auftragssumme.
Assoziation
Bei Assoziationen handelt es sich um Beziehungen zwischen Objekten. Diese Beziehungen können einseitig oder beidseitig sein. Ein Objekt kann ein anderes Objekt kennen, aber es nicht verwalten. In unserem Fallstudienbeispiel kennt ein Kunde seinen Auftrag, aber der Auftrag kennt nicht den Kunden.
Aggregation
Aggregationen sind eine spezielle Form von Assoziationen. Hier liegt eine Beziehung vor, bei der ein Objekt Teil eines anderen Objekts ist. Zum Beispiel gehört eine Tischplatte zu einem Tisch und kann beliebig viele Tischbeine haben. Die Tischplatte und die Tischbeine kennen den Tisch, aber der Tisch kennt sie nicht.
Komposition
Die Komposition ist eine weitere Spezialform der Aggregation. Hier sind die Teile eines Objekts von der Existenz des Ganzen abhängig. Wenn das Ganze gelöscht wird, werden auch die Teile gelöscht. Ein Beispiel dafür ist ein Dokument, das aus einem Inhaltsverzeichnis und mehreren Kapiteln besteht. Wenn das Dokument gelöscht wird, werden auch das Inhaltsverzeichnis und die Kapitel gelöscht.
Jetzt weißt du, was es mit Assoziation, Aggregation und Komposition auf sich hat. Denk immer daran, dass es beim Programmieren wichtig ist, die richtigen Beziehungen zwischen Objekten herzustellen. So wird dein Code übersichtlich und gut strukturiert.
In Java können Assoziationen, Aggregationen und Kompositionen auf verschiedene Weise implementiert werden. Dazu stehen spezielle Methoden zur Verfügung, die die Verbindung zwischen den Klassen herstellen, abfragen oder löschen können.
Jetzt weißt du Bescheid! Assoziation, Aggregation und Komposition sind keine Hexerei. Mit etwas Übung wirst du zum Meister der Beziehungen zwischen Objekten.