Verein vs. Aggregation vs. Komposition in Java
Ich versuche zu verstehen, was diese Begriffe bedeuten. Und ich kam mit paar Beispiele wie:
Aggregation : Facebook hat eine Benutzer
Zusammensetzung : Jeder Benutzer in facebook hat eine Sitzung.
Vereins : Menschen verwendet eine browser
Aber ich bin immer verwirrt mit hat eine und verwendet eine Beispiele von mir. Warum kann es nicht sein, die Benutzer verwendet eine facebook-Konto oder Facebook verwendet eine Sitzung zu authentifizieren Benutzer?
Ist das falsch im Sinne von OOP? Wo fehlt mir das Konzept?
- hier ist ein schöner Artikel..das würde helfen, Sie verstehen..
- und ein weiterer one
- Möglich, Duplikat der what-is-the-difference-between-aggregation-composition-and-dependency
- Finden Sie ein code Beispiel: stackoverflow.com/questions/731802/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den verwendet eine Beziehung bedeutet zwei Dinge
->beide können unabhängig voneinander existieren
->Daten-Ströme aus der ganzen classifier(Menschen) zum Teil classifier(browser)
Den hat eine Beziehung bedeutet zwei Dinge
->die Lebensdauer von dem Teil-Klassifikator(Sitzung) ist abhängig von der Lebensdauer der gesamten classifier(facebook)
->Daten werden in der Regel fließt in nur eine Richtung (das heißt, von der ganzen classifier(facebook) zum Teil classifier(Sitzung)).
Dieser Artikel aus der Code-Projekt macht eine gute Erklärung des Themas.
Da ist kein Stein-geschrieben Weg zur Modellierung einer Domäne, gibt es mehrere Möglichkeiten, die richtige Modellierung eines bestimmten Problems. Zum Beispiel, Ihre erste Beispiel verwendet eine
Facebook
Klasse und in Ihrem follow-up, die Sie verwenden jetzt eineFacebook Account
Typ: mit dem einen oder anderen (oder vielleicht beide) hat Auswirkungen un Ihr Modell aber nicht mindert.Sagen, dass nach der Code-Projekt-Website ein Verein Beziehung impliziert:
In diesem Sinne, ich glaube nicht, dass es eine Assoziation Beziehung zwischen
User
undFacebook Account
da Sie sehr stark abhängig von einander (vorausgesetzt, der Benutzer bezieht sich auf ein Facebook-user), also eine Zusammensetzung vielleicht eine bessere Beziehung.Ich bin mir nicht sicher, was meinst du mit deinem
Session
Klasse. Wenn es die Zeit, während der Benutzer ist connected es gibt keinen Sinn, zu sagen, Facebook verwendet session für die Authentifizierung und vielleicht die Pressestelle Beziehung zwischenUser
undSession
kann eine Informationsansammlung, da ein Benutzer kann mehrere Sitzungen an einem Tag ein, es ist der Eigentümer aller von Ihnen.Überprüfen dieser wikipedia-Eintrag, die genau beschreibt, aggregation VS. Komposition
So, in Java-Begriffe, ist ein Facebook-Benutzer hat einen Namen (Komposition) und ein Facebook-User hat eine Liste von Freunden (Aggregation)