Dans un diagramme de classes UML, quelle est la différence entre une relation d'association et une relation de dépendance?
D'après ce que je sais, une association est une relation plus forte qu'une dépendance, mais je ne sais pas en quoi elle est plus forte.
Tout exemple serait plus que bienvenu :)
Une association implique presque toujours qu'un objet a l'autre objet comme champ / propriété / attribut (la terminologie diffère).
Une dépendance implique généralement (mais pas toujours) qu'un objet accepte un autre objet comme paramètre de méthode, instancie ou utilise un autre objet. Une dépendance est fortement impliquée par une association .
la source
En termes de POO:
Association -> Un objet has-a C (en tant que variable membre)
Dépendance -> A fait référence à B (en tant que paramètre de méthode ou type de retour)
Il y a aussi une réponse plus détaillée .
la source
La dépendance est comme lorsque vous définissez une méthode qui prend une String (en Java, C #, car string est un objet en eux) comme paramètre, alors votre classe dépend de la classe String.
L'association est comme lorsque vous déclarez une chaîne comme attribut dans votre classe. alors votre code est associé à la classe de chaîne.
la source
L'association est de 2 types-
Agrégation
1) Composition - Association ou relation plus forte entre 2 objets. Vous créez un objet d'une classe B dans une autre classe A
Si nous supprimons la classe A, B n'existera pas (l'objet B est créé à l'intérieur de A uniquement).
2) Agrégation - type d' association plus faible entre 2 objets.
Même si vous supprimez la classe A, B existera à l'extérieur (B est créé à l'extérieur et passé à la classe A)
Un autre exemple de ceci - Man & Car. L'homme a une voiture, mais l'homme et la voiture existent indépendamment.
la source
Ici: "Association vs dépendance vs agrégation vs composition" , vous avez un grand vade mecum avec des diagrammes de classes uml et des extraits de code. L'auteur nous donne une liste de relations: Association, Dépendance, Agrégation, Composition en un seul endroit.
la source
Une dépendance est très générale et la réduction de la complexité consiste à réduire autant que possible les dépendances.
Une association est une forte dépendance (statique). L'agrégation et la composition sont encore plus fortes.
la source
L'association se produit lorsqu'un objet a juste un lien vers un autre et n'utilise pas de méthodes d'objet relationnel. Pour le rubis par exemple
Cela signifie que vous pouvez obtenir un objet de profil de l'utilisateur mais que l'utilisateur n'utilise pas les méthodes du profil à l'intérieur de lui-même (n'a aucune dépendance sur l'interface d'un profil).
La dépendance signifie que l'utilisateur a un lien vers un autre objet et appelle les méthodes de cet objet en lui-même
Ici, si la méthode d'information de Profile est modifiée ou renommée, notre classe d'utilisateurs dépendants doit également être modifiée.
la source