7
votes

Association vs. Agrégation vs. Composition en Java

J'essaie de comprendre ce que signifient ces termes. Et je suis venu avec quelques exemples comme:

Agrégation: Facebook a un utilisateur

Composition: Chaque utilisateur sur Facebook a une session .

Association: Les personnes utilisent un navigateur

Mais je suis confus avec a une et utilise des exemples de mien. Pourquoi ne peut-il pas être utilisateur utilise un compte Facebook ou Facebook utilise une session pour authentifier l'utilisateur?

est-ce faux en termes d'OOP? Où il me manque le concept?


4 commentaires

ici est un bel article. tu comprends..


et un autre Un


Dupliqué possible de ce qui-est-la différence - entre-différence entre l'agrégation -Composition-and-d Ependency


S'il vous plaît voir un exemple basé sur le code à: Stackoverflow.com/Questtions/731802/...


3 Réponses :



8
votes

Le utilise une relation signifie deux choses

-> Les deux peuvent exister indépendamment

-> Data flux de tout le classificateur ( personnes ) au classificateur de pièces ( navigateur )

Le a une relation signifie deux choses

-> La durée de vie du classificateur de pièce ( Session ) dépend de la durée de vie de tout le classificateur ( Facebook )

-> Les données fluient généralement dans une seule direction (c'est-à-dire de tout le classificateur ( Facebook ) au classificateur de pièces ( SESSION )).


1 commentaires

Tache sur. En outre, l'association est le terme générique; L'agrégation (utilise A) et la composition (a) sont des types d'association.



2
votes

Cet article du projet de code fait un Explication soignée du sujet.

Tout d'abord, il n'y a pas de moyen écrite en pierre de modéliser un domaine, il existe plusieurs manières une approche de modélisation correcte de un problème particulier. Par exemple, votre exemple initial utilise une classe Facebook et dans votre suivi, vous utilisez maintenant un compte Facebook TYPE: L'utilisation d'une ou d'une autre (ou peut-être) a Impact ONU votre modèle mais n'invalend pas.

Dire que, selon le site du projet de code, une association LIET implique:

  • Propriétaire: Aucun propriétaire
  • temps de vie: avoir leur propre vie
  • Child Object: Les objets enfants sont tous indépendants.

    Avec cela à l'esprit, je ne pense pas qu'il y ait une relation d'association entre utilisateur et compte facebook car ils dépendent fortement les uns des autres (en supposant que l'utilisateur fait référence à Un utilisateur Facebook), donc une composition pourrait être une meilleure relation.

    Je ne suis pas sûr de quoi parlez-vous avec votre classe de la classe . Si c'est La période de temps pendant laquelle l'utilisateur est connecté d Il n'a aucun sens dans la session Facebook utilise la session Pour authentification et peut-être la relation d'asociation entre utilisateur et et peut être une dentgation , puisqu'un utilisateur peut avoir plusieurs sessions en une journée un jour un jour. propriétaire de tous.


0 commentaires