Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: C++ (alle ISO-Standards) ::  Aggregation/Komposition     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
dodo217
Mitglied

Benutzerprofil
Anmeldungsdatum: 10.01.2017
Beiträge: 1
Beitrag dodo217 Mitglied 13:02:11 10.01.2017   Titel:   Aggregation/Komposition            Zitieren

Hallo C++ Gemeinde,
Ich beschäftige mich gerade mit dem Thema Aggregation und Komposition.
An sich habe ich die Begriffe verstanden und kann sie auch auseinander halten.
Ich bin aber im Internet auf zwei Beispiele für Aggregation gestoßen, die mich an sich etwas verwirrt haben.

Beispiel 1:
Ein Kamin ist Bestandteil eines Gebäudes.
Der Kamin existiert auch ohne Gebäude weiter,
genauso das Gebäude.

Beispiel 2:
Eine To-Do-Liste besteht aus einzeilen To-Do-Einträgen.
Ein To-Do-Eintrag kann unabhängig einer To-Do-Liste existieren,
aber meiner Meinung nach kann eine To-Do-Liste nur existieren,
wenn sie To-Do-Einträge enthalt.


Nun verwirrt mich, dass bei einem Beispiel das Ganze auch unabhängig von den Bestandteilen existiert, aber beim anderen Beispiel das Ganze ohne die Teile nicht existieren kann.

Oder beschreiben Aggregation/Komposition nur die Beziehung der Bestandteile zum Ganzen?

Ich hoffe jemand kann mir den Unterschied erklären, bzw meine Verwirrung auflösen.


Lg Dodo217


Zuletzt bearbeitet von dodo217 am 13:04:27 10.01.2017, insgesamt 1-mal bearbeitet
HansKlaus
Mitglied

Benutzerprofil
Anmeldungsdatum: 19.04.2016
Beiträge: 262
Beitrag HansKlaus Mitglied 13:39:59 10.01.2017   Titel:              Zitieren

das ist ein wenig komisch formuliert mit dem "kann selbstständig existieren".

also wenn du dir eine hand abhackst, existiert die hand zwar weiter, erfüllt aber ohne den körper keinen zweck bzw. fängt langfristig an zu stinken. einen motor kannst du dagegen ausbauen, ohne dass er irgendwie kaputt geht.

eine to-do-liste kann aber trotzdem existieren, obwohl sie keine (gültigen) einträge enthält: du nimmst dir einfach einen zettel und schreibst "to-do-liste" drauf. :D

in "grundlagen von datenbanksystemen" von elmasri, navathe wird zum beispiel aufgrund genau dieser schwammigen formulierung gar nicht weiter darauf eingegangen bzw. nicht unterschieden.
Werner Salomon
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.07.2005
Beiträge: 2589
Beitrag Werner Salomon Mitglied 14:04:24 10.01.2017   Titel:              Zitieren

Hallo Dodo217,

Willkommen im C++-Forum.

Zur Komposition kann man sagen, dass in dem konkreten Fall einer Beziehung (hier Gebäude-Kamin) das beschriebene Kamin-Objekt nur als Teil des Gebäudes existiert. Das bedeutet aber NICHT, dass ein Kamin-Objekt nicht grundsätzlich auch ohne Gebäude existieren kann.
Eine Komposition beschreibt eine Beziehung zwischen zwei Objekten in einem bestimmten Kontext. Heißt Gebäude-hat-Kamin mit der Regel: wenn Gebäude verschwindet ist auch der Kamin weg. An anderer Stelle kann aber durchaus auch ein Kamin (z.B. auf einem Grillplatz) existieren. Eine Komposition beschreibt eben nicht eine Eigenschaft des aggregierten Objekts (eines Kamins) sondern eine Eigenschaft einer konkreten Beziehung (hier Gebäude-Kamin).

Umgekehrt gilt die Regel nicht. Es kann in obiger Beziehung durchaus auch Gebäude ohne Kamin geben - oder eben eine To-Do-Liste ohne Einträge. Ob ein Kamin einen, keinen oder mehr als einen Kamin hat oder haben kann, wird über die Kardinalität angegeben. In Fall des Kamins wahrscheinlich viele (D.h. in der UML: '*') - also ein Gebäude kann keinen, einen oder mehr als einen Kamin haben. Genauso bei der To-Do-Liste.

Gruß
Werner


Zuletzt bearbeitet von Werner Salomon am 14:06:38 10.01.2017, insgesamt 1-mal bearbeitet
C++ Forum :: C++ (alle ISO-Standards) ::  Aggregation/Komposition   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.