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

Diagrammes de Classes Discussion :

Implémenter l'agrégation d'une classe sur elle-même


Sujet :

Diagrammes de Classes

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 13
    Points : 13
    Points
    13
    Par défaut Implémenter l'agrégation d'une classe sur elle-même
    Bonjour,

    Etant débutant, je ne suis même pas sûr que "agréger une classe sur elle-même" soit une bonne pratique. Je vais donc décrire un exemple simple, et les trois solutions que j'ai envisagées. Aucune ne me plait particulièrement, donc j'ai peut-être manqué quelque chose.

    L'idée générale est de gérer un objet Monde, composé d'objets Pays. J'utilise une relation de composition. Là où les choses se corsent, c'est que je souhaite exprimer la notion de frontières, et là, je ne sais plus dans quel sens tracer ma flèche.

    Solution 1

    Spontanément, j'ai créé un lien d'agrégation de la classe pays sur elle même. Un pays est limitrophe à plusieurs pays, ce lien me semblait suffisant.
    Mais à l'implémentation, je me rends compte qu'au moment ou j'instancie l'Espagne, ni la France ni le Portugal ne sont disponibles... je suis donc obligé d'informer a posteriori chaque pays de ses voisins, ce qui me semble contradictoire avec la notion d'agrégation.

    Solutions 2 et 3

    Du coup, j'ai créé une classe Frontière. Le Monde est maintenant composé de Pays et de Frontières.
    Mais dans quel sens réaliser l'agrégation ? Est-ce une frontière qui agrège deux pays ou un pays qui agrège plusieurs frontières ? Dans tous les cas, je perds la possibilité de "naviguer" simplement d'un pays à un autre.


    Merci d'avance pour vos lumières !

    elvex
    Images attachées Images attachées    

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 533
    Points : 6 709
    Points
    6 709
    Par défaut
    Bonjour,

    attention, on utilise une agrégation A<>-->B lorsque A est composé de B, si de plus la durée de vie des instances de B est limité par la durée de vie des instances de A qui les contient alors on utilise une composition A<*>-->B

    Est-ce une frontière qui agrège deux pays ou un pays qui agrège plusieurs frontières
    l'un et l'autre, la solution n'est donc sans doute pas là

    si la notion de frontière n'apporte rien elle elle même il suffit d'avoir une association de Pays vers Pays (ce n'est ni une agrégation ni une composition) permettant d'obtenir les pays limitrophes d'un pays

    si une frontière à un sens et doit reposer sur une classe alors je verrais une classe-association plutôt qu'une 'simple' classe. Cependant une classe est tout aussi valide, par contre pas d'agrégation car on ne sait pas qui de l'œuf et de la poule ...
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Merci pour ta réponse, je pense que j'ai un peu trop ignoré la simple notion d'association.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment faire un JOIN récursif d'une table sur elle-même?
    Par PierreCaron dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/04/2009, 03h28
  2. Relation d'une table sur elle-même ?
    Par TallyHo dans le forum Requêtes
    Réponses: 2
    Dernier message: 30/10/2007, 00h14
  3. Faire boucler une Macro sur elle même..
    Par volganne dans le forum Access
    Réponses: 5
    Dernier message: 02/06/2006, 11h13
  4. Probleme jointure d'une table sur elle même
    Par fred64 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/05/2006, 15h01
  5. [SQL2K] delete cascade d'une table sur elle même
    Par StormimOn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/04/2006, 16h28

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