Objektorientierte Programmierung ist ein allgemeines Paradigma, das in der Softwareentwicklung verwendet wird. Das Objekt ist eine Instanz einer Klasse, die von Klassen erstellt wird. Die Objekte arbeiten über Links zusammen. Verknüpfungen sind die physische und konzeptionelle Verbindung zwischen Objekten. Eine Sammlung von Links mit ähnlicher Struktur und Semantik wird als Assoziation bezeichnet .
Vergleichstabelle
Basis zum Vergleich | Anhäufung | Zusammensetzung |
---|---|---|
Basic | In der Aggregation gibt es eine Beziehung, in der ein Kind unabhängig vom Elternteil existieren kann. | In der Komposition kann das nicht unabhängig vom Elternteil existieren. |
Art der Beziehung | "hat ein" | "Teil von" |
Assoziationstyp | Schwache Assoziation | Starke Verbindung |
UML-Design-Symbol | Neben der Montageklasse durch einen hohlen Diamanten dargestellt. | Neben der Montageklasse durch einen massiven Diamanten dargestellt. |
Funktion | Das Löschen einer Baugruppe hat keine Auswirkungen auf ihre Teile. | Wenn das besitzende Klassenobjekt gelöscht wird, kann dies erhebliche Auswirkungen auf das enthaltende Klassenobjekt haben. |
Definition von Aggregation
Aggregation kann als Beziehung zwischen einer Assemblyklasse und einer konstituierenden Klasse definiert werden. Die Beziehung zwischen zwei Objekten kann durch Zeichnen eines Liniensegments in UML (Unified Modeling Language) dargestellt werden.
Ein Auto besteht beispielsweise aus Rädern, Motor, Getriebe, Lenkung, Hauptkörper usw. Ein Auto ist eine Baugruppe, und die anderen Teile sind dessen Bestandteile. Auto auf Rädern ist eine Aggregation, Auto auf Motoren ist eine andere Aggregation und so weiter. Jede einzelne Paarung ist definiert, um die Multiplizität jedes Bestandteils innerhalb der Baugruppe als Ergebnis festzulegen. Die Anzahl der Objekte kann ebenfalls dargestellt werden.
Bei der Aggregation handelt es sich um einen Assoziationstyp, der eine Beziehung zwischen den Objekten beschreibt. Beispielsweise hat ein Auto ein Getriebe und ein Auto einen Motor . Für die Eins-zu-Viele-Beziehung hat ein Auto beispielsweise viele Räder .
Definition der Zusammensetzung
Die Komposition ist auch eine Art Assoziation, aber eine restriktivere Form. Sie wird in UML durch einen kleinen massiven Diamanten neben der Baugruppenklasse dargestellt.
Zusammensetzung bedeutet also Eigentum an dem konstituierenden Teil des Ganzen. Dies würde letztendlich den Komfort für die Programmierung erhöhen. Die Komposition kann das Löschen des konstituierenden Objekts durch das Löschen eines Assembly-Objekts auslösen.
Die Komposition beschreibt einen "Teil einer" Beziehung. Ein Blatt ist beispielsweise Teil eines Baumes . Wenn der Baum zerstört wird, müssen Blätter zerstört werden.
Hauptunterschiede zwischen Aggregation und Zusammensetzung
- Aggregation bezeichnet eine Beziehung, in der untergeordnete und übergeordnete Entitäten unabhängig voneinander existieren können. In der Zusammensetzung ist die untergeordnete Entität jedoch von der übergeordneten abhängig.
- In der Aggregation gibt es eine „hat eine“ Beziehung, während in der Komposition ein „Teil der“ Beziehung zwischen der Assembly und den konstituierenden Klassenobjekten besteht.
- Aggregation ist eine schwache Assoziation, während die Komposition eine starke Assoziation ist, weil sie mehr Einschränkungen hat.
- Im UML-Design wird die Aggregation durch einen hohlen Diamanten beschrieben. Im Gegensatz dazu ist die Komposition durch einen massiven Diamanten abgebildet.
Fazit
Zusammengenommen haben die Bestandteile die unabhängige Existenz und können Aggregaten oder deren Zusammenstellung gemeinsam genutzt oder neu zugewiesen werden. Andererseits gehört der Bestandteil in der Zusammensetzung genau zu einer Baugruppe oder einem Aggregat. Außerdem wird das Teil erstellt, wenn das Aggregat gebildet wird, und das Teil wird zerstört, wenn das Aggregat zerstört wird.