IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Implémentation Java d'un diagramme de classes UML


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 61
    Points : 34
    Points
    34
    Par défaut Implémentation Java d'un diagramme de classes UML
    Bonjour,

    1. Je dois implémenter en Java le pattern de classes suivant:


    Quelle est la meilleure manière de la faire ?

    Actuellement, j'ai implémenté ceci, est-ce une bonne pratique ?
    R : A possède une ArrayList d'éléments B, et B possède un élément de type A (lien bi-directionnel)
    R_1 : B possède une ArrayList d'éléments C, et C possède un élément de type B

    2. Je dois aussi implémenter la suppression d'un élément de type B. Où doit être implémentée cette méthode ?
    Propositions:
    - dans A: a.remove(b)
    - dans B: b.remove(this)

    Ce qui est lourd, c'est qu'il faut aussi à chaque fois supprimer les instances de C qui dépendent du B que l'on supprime.

    Voilà, j'espère être clair, merci d'avance,

  2. #2
    Invité
    Invité(e)
    Par défaut
    Le problème des liens bidiretionnels c'est qu'il faut en maintenir la cohérence.

    Perso j'aurais uniquement mis une liste d'objets B dans A et j'aurais utilisé a.remove(b).

    Après, connaissant B tu peux avoir besoin, dans ta logique métier, de connaître l'objet A auquel il appartient. Dans ce cas le lien bi-directionnel s'impose. Mais là aussi j'utiliserai a.remove(b). Etant donné qu'un objet B ne peut pas ne pas appartenir à un objet A, dès que tu le supprimeras de l'objet A, il sera automatiquement effacé de la mémoire (car plus référencé).

    Si tu dois pouvoir faire passer un objet B d'un objet A à un autre, tu risques de te retrouver avec des petits problèmes d'incohérence.

    Par contre la méthode "suicide" b.remove(this) me semble, elle, bizarre.

  3. #3
    Membre extrêmement actif Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 814
    Points
    814
    Par défaut
    je ferais a.remove(b) dans lequel du supprime on remove les c du b

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 279
    Points
    279
    Par défaut
    Salut,
    C'est apparemment ta classe A qui gére les éléments B dans un ArrayList, donc a.remove(b) me parait juste. Ensuite, si tu souhaites supprimer également les élements C contenus dans un objet B que tu supprimes, il te suffit d'appeler la méthode remove de l'objet B cette fois, qui elle, supprime les éléments de ton ArrayList d'objets C.

  5. #5
    Membre actif Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Points : 229
    Points
    229
    Par défaut
    Comme c'est A qui contient des instances de B, c'est à A de gérer ces instances. Pas à B.

    A doit s'occuper de ce qu'elle contient, il s'agit de responsabiliser tes classes.

Discussions similaires

  1. [MySQL-5.1] Implémenter le Diagramme de classes UML sous un environnement MySQL
    Par St Carats dans le forum Administration
    Réponses: 0
    Dernier message: 19/05/2014, 12h52
  2. Règles de transformation d'un diagramme de classe UML vers classes Java
    Par Deallyra dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 01/04/2010, 17h00
  3. aide sur un diagramme de classe UML
    Par pascal91 dans le forum Diagrammes de Classes
    Réponses: 7
    Dernier message: 29/12/2008, 19h19
  4. Diagramme de classes UML
    Par franc82 dans le forum OpenGL
    Réponses: 5
    Dernier message: 27/10/2006, 10h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo