Salut, et bienvenue sur le forum.
De prime abord, il n'y a déjà aucun intérêt à pouvoir modifier les noms de pays, de départements et de villes ( j'irai même encore plus loin en disant qu'il est tout à fait illogique de permettre de renommer Marseilles en Sochaux ou la Bourgogne en Nord Pas de Calais... Et j'en connais plus d'un qui pousseraient de haut cris si on décidait de renommer la France en Belgique )
Il y a surement une multitude de choses dont on peut décider d'accepter la modification (allant du nom du chef d'état à la population, en passant, pourquoi pas, par la superficie), mais les noms sont quelque chose de finalement fort stables en générale (non, je n'oublie pas que le Congo est devenu Zaïre avant de redevenir Congo, ni que certaines villes ont été renommées )
Il me semble donc déjà cohérent de ne pas permettre de faire à tes objets ce qui n'a - pour ainsi dire - aucune chance d'être accepté
Par contre, il semble cohérent de faire de manière à ce que le nom du pays, du département ou de la ville soit pris en compte dés la construction de l'objet (cela s'appelle la notion de RAII)
Ensuite, il faut avouer que l'idée d'utiliser un indice numérique pour accéder à un pays, un département ou une ville me laisse pour le moins perplexe...
Je suis d'accord avec le fait qu'en France, vous numérotez vos départements, (voire les arrondissements de Paris), mais vous ne numérotez pas vos villes...
Le meilleur moyen d'identifier à coup sur et de manière unique un pays, un département ou une vile, reste quand même toujours de se baser sur... le nom du dit pays, département ou ville
Enfin, il faut avouer que, une fois tous les départements et toutes les villes créées, ce que tu fera le plus souvent, c'est... rechercher un département ou une ville
Tout cela pour dire que, bien que je comprenne que la première idée qui te soit venue à l'esprit est de créer un tableau de villes dans le département et un tableau de départements dans le pays, il serait vraiment intéressant de repenser au choix du conteneur pour ces collections de villes et de départements (et il en va de même si tu veux aller plus haut avec les continents qui contiennent des pays et le monde qui contient des continents )
En effet, l'idéal me semble fort de choisir un conteneur qui te permettra facilement de retrouver un élément particulier de la collection, sur base de ce qui caractérise le mieux cet élément particulier: son nom.
Tu trouvera dans la faq une entrée qui te permettra de trouver le conteneur le mieux adapté à tes besoins, mais, l'un dans l'autre, je me dis que la map est susceptible de te convenir
Tu restera évidemment libre de surcharger l'opérateur [], mais n'aurais tu pas tout aussi facile d'écrire un code proche de
Monde.getContinent("Europe").getPays("France").getDepartement("Centre")
qui aurait au moins l'énorme avantage de préciser clairement ce que tu demande à récupérer à chaque fois (et donc de faciliter énormément la compréhension du code)
Partager