Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2976 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  UML et Java

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

UML et Java

n°1308553
MazdaX
Posté le 18-02-2006 à 12:11:54  profilanswer
 

J'ai une question de conception :
 
Quand choisir une agrégation (losange vide) au lieu d'une association ?
Je n'arrive pas à saisir la subtilité entre les 2 ...

mood
Publicité
Posté le 18-02-2006 à 12:11:54  profilanswer
 

n°1308555
pj_crepes
Posté le 18-02-2006 à 12:16:03  profilanswer
 

Lors d'une association de A vers B, A n'est pas responsable de B alors que lors d'une agrégation A est responsable de B.

n°1308558
MazdaX
Posté le 18-02-2006 à 12:29:24  profilanswer
 

C'est à dire ?
 
Prenons l'exemple d'un "client" et d'un "pays".
 
Chaque Client est rattaché à un Pays.
 
Agrégation ou Association ? (Pas composition car le cycle de vie n'est pas le même)

n°1308597
pj_crepes
Posté le 18-02-2006 à 13:31:23  profilanswer
 

Association ->
 
L'objet client ne modifie pas l'objet pays.

n°1308598
MazdaX
Posté le 18-02-2006 à 13:33:06  profilanswer
 

Et en Java (niveau code)
 
La différence se fait où ? que dans les méthodes ?

n°1308923
pj_crepes
Posté le 19-02-2006 à 10:00:47  profilanswer
 

En faite en java y a pas de différence, mais c'est juste pour respecter les règles de l'uml (il ne faut pas oublier que l'uml permet de générer du code dans plusieurs langages).
 
Concrètement pour toi l'intérêt de respecter c'est d'être le plus souple possible.
C'est à dire que si compte finalement programmer en C++ pour une raison ou pour une autre sa changera des choses au niveau du code.
Typiquement tu verras apparaître un "const" derrière la définition de certaines méthodes.

n°1308926
MazdaX
Posté le 19-02-2006 à 10:06:12  profilanswer
 

pj_crepes a écrit :

En faite en java y a pas de différence, mais c'est juste pour respecter les règles de l'uml (il ne faut pas oublier que l'uml permet de générer du code dans plusieurs langages).
 
Concrètement pour toi l'intérêt de respecter c'est d'être le plus souple possible.
C'est à dire que si compte finalement programmer en C++ pour une raison ou pour une autre sa changera des choses au niveau du code.
Typiquement tu verras apparaître un "const" derrière la définition de certaines méthodes.


 
Ok  :jap:

n°1308936
slash33
Posté le 19-02-2006 à 11:25:37  profilanswer
 

L'intérêt d'UML n'est il pas de fournir une langage de communication compris par tous (formés à l'UML ça va de soit) avant d'être un instrument exploité par les RAD ?


Message édité par slash33 le 19-02-2006 à 11:25:55
n°1309514
bugbreeder
Posté le 20-02-2006 à 11:10:33  profilanswer
 

MazdaX a écrit :

J'ai une question de conception :
 
Quand choisir une agrégation (losange vide) au lieu d'une association ?
Je n'arrive pas à saisir la subtilité entre les 2 ...


 
_ Agrégation (losange vide) : la classe a de simple références vers une autre classe A -> B, si on détruit l'instance A alors l'instance B existe toujours mais risque d'être orpheline (zombie, existante mais plus utilisée par personne, donc "morte" mais pas au courant par contrôlée par une autre).  
 
_ Composition (losange plein) : la classe contient complètement une autre classe (classe interne), si on détruit l'instance A alors l'instance B est détruite aussi.
 
En gros pour le choix d'aggrégation contre composition, si c'est une voiture composée (entre autres) de roues qui crame un soir de nouvel an tout ce qui la compose doit être détruit aussi, mais si c'est un immeuble insalubre qui saute ses habitants ne doivent pas sauter avec (si possible :-( ). Donc pour moi pour une relation A -> B donnée, si la destruction de A doit amener celle de B c'est une composition, sinon une aggrégation.

n°1309893
slash33
Posté le 20-02-2006 à 18:38:11  profilanswer
 

La question portait sur la différence entre association et agrégation et non entre agrégation et composition

Message cité 1 fois
Message édité par slash33 le 20-02-2006 à 18:38:33
mood
Publicité
Posté le 20-02-2006 à 18:38:11  profilanswer
 

n°1309944
bugbreeder
Posté le 20-02-2006 à 19:39:04  profilanswer
 

slash33 a écrit :

La question portait sur la différence entre association et agrégation et non entre agrégation et composition


 
Exact, mea culpa, alors je dirais que l'agrégation c'est une référence vers une collection alors que l'association c'est une référence vers une classe seule.

n°1310026
slash33
Posté le 20-02-2006 à 20:48:26  profilanswer
 

Rien de tel qu'un retour aux sources:
http://uml.free.fr/cours/p15.html
http://uml.developpez.com/faq/?page=DC#DC_Agregation03
 
Plus académique:
http://www.math-info.univ-paris5.f [...] sCours.pdf


Message édité par slash33 le 20-02-2006 à 20:54:58
n°1312665
XavierMill​er
Posté le 23-02-2006 à 21:30:41  profilanswer
 

et "Java Tête la Première" ainsi que "Design Patterns Tête la Première" aux éditions O'Reily ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  UML et Java

 

Sujets relatifs
[Hibernate]Filtrer une requete avec une methode javaPrendre le controle d'un pc par internet via une machine JAVA/VNC
Java & DreamweaverEquivalent jad pour passer du .java au .jsp
Partager des instances de classe entre java et C#Reprensentation UML d'un site web evolutif
UML A JAVAjava swing modélisation UML avec MagicDraw
transformer un fichier .java en graph UML ?[Java] Les Design Pattern et UML c'est quoi ?
Plus de sujets relatifs à : UML et Java


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR