3 pièce(s) jointe(s)
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