Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Grundlagen der Programmierung: Objektorientiertes Design

Aggregation und Komposition

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Eine Aggregation und eine Komposition steuern das Verhältnis zwischen einer Klasse und den untergeordneten Objekten. Dieses Video erläutert den grundlegenden Unterschied zwischen den beiden Ansätzen.

Transkript

Wir kennen in unserem UML-Diagramm ja schon eine Reihe von Verbindungen. Also zum Beispiel ein Kunde, der befüllt das Objekt "Warenkorb" und das Objekt "Warenkorb", das beinhaltet verschiedene Objekte vom Typ Artikel. Wir kennen auch die Verbindung einer Vererbung, also ein Sparkonto, das Verhalten und Attribute von einem Bankkonto ererbt. Und diese Vererbung, das ist ja ein Verhältnis, das man beschreiben kann als "ist ein", also ein Sparkonto ist ein Bankkonto. Wie sieht es nun mit Verhältnissen aus, die man mit "hat ein" beschreiben kann? Also ein Kunde hat eine Adresse, ein Auto hat einen Motor, eine Bank hat viele Kunden und eine Universität hat viele Studierende. Was ist das nun für ein Verhältnis, wenn ich sage, dass ein Objekt "Adresse" hier Bestandteil eines Kunden ist? "Adresse" erbt ja kein Verhalten von Kunden. Das ist ja etwas anderes, das ist ja kein "ist ein"-Verhältnis sondern eben dieses "hat ein". So ein "hat ein"-Verhältnis das nennt man auch Aggregation. und später kommen wir dann gleich noch zur Komposition. Ich habe hier ein anderes Beispiel: Es gibt die Klasse mit dem Namen "Schulklasse", wie wir das von früher kennen, und diese Schulklasse, die hat verschiedene Schüler. Und dieses Verhältnis nennt man Aggregation und in UML wird das mit der durchgezogenen Linie und dann mit diesem kleinen Diamantsymbol, oder dieser kleinen Raute dargestellt. Das bedeutet, die Schulklasse hat verschiedene Schüler. Und weil es in einer Schulklasse mehrere Schüler geben kann, schreibe ich hier eine eins und hier schreibe ich ein Sternchen. Und damit habe ich auch festgelegt, dass es eine Schulklasse geben kann die aber eben aus mehreren Schülern besteht. Das heißt jetzt Aggregation. Daneben, da gibt es noch die Komposition, und die zeige ich Ihnen hier unten. Und hier habe ich jetzt auf Englisch das document und ein "document" besteht aus mehreren "paragraphs". Was ist der Unterschied jetzt zwischen Aggregation und Komposition? Der Unterscheid ist der, dass in dem Moment, in dem ich das Objekt Dokument lösche werden automatisch auch diese "paragraphs", also diese Absätze innerhalb dieses Dokumentes gelöscht.- weil ein "paragraph", also ein Absatz niemals ohne Dokument existieren kann. Anders schaut es hier oben bei der Aggregation aus. Wenn ich eine Schulklasse auflöse, dann kann ich die Objekte Schüler weiterhin verwenden, dann machen sie auch weiterhin Sinn. Aber unten bei der Komposition ist es anders, das heißt der Unterschied zwischen Aggregation und Komposition ist der, dass es tatsächlich um eine Art festes Besitzverhältnis geht. Mit anderen Worten: Wenn ich so ein document lösche, dann lösche ich automatisch auch die paragraphs, die Teil dieses documents sind. Und in UML, da macht man den Unterschied mit der ausgefüllten im Gegensatz zur leeren Raute deutlich. Wichtig ist, diese Komposition, die braucht man, wenn man nicht vergessen möchte dass man beispielsweise beim Löschen des "document"-Objektes automatisch das Ganze aufräumen will, also eine Finalisierer-Methode aufrufen möchte, oder ein Destruktor aufrufen möchte. Dann kann es sehr hilfreich sein, auf diese Komposition zu achten und eben zu überlegen: Wie räume ich eigentlich wieder auf dass mir hier später nichts mehr passiert? Komposition und Aggregation sind zwei Arten, wie man so ein "hat ein"-Verhältnis darstellen kann.

Grundlagen der Programmierung: Objektorientiertes Design

Lernen Sie alle Grundbegriffe und Methoden von objektorientiertem Design kennen und holen Sie sich das Rüstzeug, um bald Ihre eigene Softwareprojekte zu starten.

2 Std. 43 min (45 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!