Unterschied zwischen Assoziation und aggregation
Verstehe ich den Unterschied zwischen aggregation und Komposition, aber ich bin kämpfen, ein bisschen mit dem Verein. Mein Aktuelles Verständnis ist, dass eine Verein besteht zwischen Klassen, wenn "Sie verwenden jeder andere", zum Beispiel, ein Objekt übergeben wird, der andere während des Aufrufs einer Methode. Siehe auch:
http://www.codeproject.com/Articles/330447/Understanding-Association-Aggregation-and-Composit
Beide Objekte unabhängig voneinander existieren und, im Gegensatz zur aggregation, die kein Objekt ist ein container-Klasse des anderen. Bedeutet das, dass beide Objekte MÜSSEN über eine Kopie von die andere(N) (z.B. 1:m-Beziehung) oder wie sonst ist der Verein "gespeichert". Jedes feedback würde sehr geschätzt werden.
- Ich glaube der größte Punkt des Artikels ist zu sagen, dass Sie weder das eine baut den anderen. Sie sind ALSO nicht zuständig für die Entsorgung von einander entweder. Dies ist eine sehr gute Sache, meiner Meinung nach, obwohl ich denke, dass der Artikel beispielsweise ist hacky.
- Vielen Dank für alle Eure Antworten. Ich denke, meine Frage ist mehr entlang der Linien. Wenn es eine Assoziation zwischen zwei Objekten, haben Sie, um Kopien von einander, oder ist es genug, um dies auszudrücken, wird in der Signatur der Methoden, die eine Assoziation implizit?
- In der Regel in C#, Sie würden nur aufeinander verweisen, weil Objekte sind Referenztypen sind standardmäßig, außer für die offensichtliche Wert-Typen, also keine Kopien in den meisten Fällen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der UML-Aufbauten 2.4.1:
Nichts mehr, nichts weniger. und sehr vage. Weil dieses, es ist auch sehr schwer zu verstehen. Was für mich (In einem Kurs unterrichte ich) ist eine Hierarchie von links von der Abhängigkeit in die Komposition, wo:
A
zuB
bedeutet, dassA
verwendetB
aber indirekt (z.B. durch den Empfang von Instanzen und deren Weiterleitung an andere Objekte).A
zuB
bedeutet, dassA
verwendetB
direkt (beispielsweise durch das aufrufen von Methoden)A
zuB
bedeutet, dassB
ist TeilA
(semantisch), sondernB
geteilt werden kann und wennA
gelöscht wird, wirdB
wird nicht gelöscht. Beachten Sie, dass diese sagt nichts darüber, wie das "Teil" umgesetzt werden.A
zuB
ist wie Aggregation, woB
nicht geteilt werden kann und wennA
gelöscht wird, alle seine Aggregate (B
s) werden ebenfalls gelöscht.Aggregation ist eine Assoziation Beziehung, wo der Verein betrachtet werden kann, die mit der Klasse 'Besitz' der enthaltenen Klasse, und die Lebensdauer der Beziehung, ist nicht definiert.
Verein ist eine 'Hat-Ein' Beziehung.
Beispiel:-
In diesem Fall, die Person Hat Einen Namen und Hat Eine Adresse, es gibt also eine Verbindung zwischen Person und Name und Person und Adresse.
Eine Assoziation beschreibt eine Beziehung zwischen Instanzen einer oder mehrerer Klassen. In den Worten des UML Reference Manual, "Vereine sind der Kitt, der hält ein system zusammen."
Aggregation ist eine form des Zusammenschlusses, in dem es eine "ganzes-Teil" - Beziehung. Sie können sagen, dass, wenn eine Klasse Flugzeug ist ein Klasse Motor dann dies bildet eine "ganzes-Teil" - Beziehung.
Aggregation
Legen wir den Nutzungsbedingungen. Die Aggregation ist ein metaterm in der UML-standard, und bedeutet SOWOHL für die Komposition und shared aggregation, einfach mit dem Namen gemeinsamen. Viel zu oft ist es falsch benannt "aggregation". Ist es SCHLECHT, für die Komposition ist eine aggregation, zu. So wie ich das verstehe, bedeutet Sie, die Sie verstehen "shared aggregation und Komposition".
Vom UML-standard:
Habe ich noch nicht gefunden-ein Wort darüber, dass die aggregation soll der Vielheit, zum Beispiel.
Vereins.
Definition von UML 3.4.1 standard:
Aggregierten Beziehung ist eine Unterklasse von Association.
Verein basiert auf Beziehung. ES ist der "Klebstoff" für die Modelle.
Aber Ihre Gefühle nicht Lügen - als shared aggregation ist nicht genau definiert, es gibt auch KEINE streng definierte Grenze zwischen Verband und Aggregiert Vereins. Autoren von Werkzeugen, Modellbauer und haben, um es sich selbst.
Verein
Es stellt eine Beziehung zwischen zwei oder mehr Objekte, wo alle Objekte haben Ihren eigenen Lebenszyklus und es gibt keine Besitzer. Der name eines Vereins gibt die Art der Beziehung zwischen Objekten. Diese wird dargestellt durch eine durchgezogene Linie.
Nehmen wir ein Beispiel der Beziehung zwischen Lehrer und Schüler. Mehrere Schüler zuordnen können, mit einem einzigen Lehrer und einen einzigen Schüler zuordnen können mehrere Lehrer. Aber es gibt keinen Besitz zwischen den Objekten, und beide haben Ihren eigenen Lebenszyklus. Beide erstellt und gelöscht werden können, unabhängig.
Aggregation
Es ist eine spezielle form der Assoziation, wo alle Objekt haben Ihren eigenen Lebenszyklus, sondern es ist Eigentum. Stellt dieser "whole-part "oder" ein-Teil-von" - Beziehung. Dieser ist vertreten durch einen hohlen Diamanten, gefolgt von einer Zeile.
Nehmen wir ein Beispiel der Beziehung zwischen der Abteilung und Lehrer. Ein Lehrer kann die gehört zu mehreren Abteilungen. Also Lehrer ist ein Teil von mehreren Abteilungen. Aber wenn wir löschen einer Abteilung, Lehrer-Objekt nicht zerstören.
Es hängt vom Kontext ab.
Verein: Ein Mann fährt Auto, Fokus auf den Anrufer und der angerufene Beziehung.
Aggregation: Ein Mann hat ein Auto, Fokus auf den Besitzer und Mitglied Beziehung.
Zusammensetzung: Ein Mann hat einen Mund, Fokus auf den Besitzer & - Mitglied, aber der Eigentümer besteht aus Mitgliedern, es bedeutet, dass Sie teilten den gleichen Lebenszyklus.
Fühlt sich an wie ich spreche Chinglish.
Verein
Assoziation ist eine Beziehung, wo alle Objekte haben Ihren eigenen Lebenszyklus und es gibt keine Besitzer. Nehmen wir das Beispiel von Lehrer und Schüler. Mehrere Schüler zuordnen können, mit einem einzigen Lehrer und einen einzigen Schüler zuordnen können mehrere Lehrer, aber es gibt keinen Besitz zwischen den Objekten, und beide haben Ihren eigenen Lebenszyklus. Beide können erstellen und löschen unabhängig.
Aggregation
Objekte in der Aggregation haben Ihre eigenen Lebens-Zyklus, aber es ist Besitz. Kind-Objekt kann nicht gehören, zu einem anderen übergeordneten Objekt. Nehmen wir ein Beispiel der Abteilung und Lehrer. Ein einzelner Lehrer kann nicht gehört zu mehreren Abteilungen, aber wenn wir löschen, die die Abteilung Lehrer-Objekt nicht zerstören. Wir können darüber nachdenken, die "hat-ein" - Beziehung.
Zusammensetzung
Es ist ein starker Typ der Aggregation. Kind-Objekt nicht über Ihre Lebens-Zyklus und wenn das übergeordnete Objekt gelöscht wird, werden alle untergeordneten Objekte ebenfalls gelöscht. Nehmen wir wieder ein Beispiel für die Beziehung zwischen Haus und Zimmer. Haus kann mit mehreren Zimmern gibt es keine unabhängige Leben von Zimmer und jedes Zimmer nicht gehört zu zwei verschiedenen Häusern, wenn wir löschen das Haus, wird der Raum automatisch gelöscht.
Einer Assoziation zwischen Objekttypen klassifiziert Beziehungen zwischen Objekten dieser Typen. Zum Beispiel, der Verein
Committee
-hat-ClubMember
-als-Stuhl, der visualisiert wird, als Verbindungsleitung in der Klasse Diagramm unten gezeigt, klassifizieren Sie die Beziehungen FinanceCommittee-hat-PeterMiller-als-Stuhl, RecruitmentCommittee-hat-SusanSmith-als-Stuhl und AdvisoryCommittee-hat-SarahAnderson-als-Stuhl, wo die Objekte PeterMiller, SusanSmith und SarahAnderson TypClubMember
, und die Objekte, die FinanceCommittee, RecruitmentCommittee und AdvisoryCommittee TypCommittee
.Siehe auch meine alternative CodeProject Artikel.