Bonjour à tous,

Je réalise l'UML d'une future application (dont le langage de programmation n'a pas encore été défini), et je m'interroge sur les liens entre classe.

Exemple simple:
-On a une classe garage, un garage a une adresse et contient des voitures.
-On a une classe voiture, une voiture a une couleur et est contenue dans un garage.


Il s'agit donc d'une relation très classique, et pour faire le lien entre les deux nous avons le choix:
-Solution 1: On considère que c'est le garage qui contient les voitures, on aura donc un truc du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
class Garage
{
String adresse;
List{Voiture} voitures;
}
Et on viendra remplir notre liste de voiture au besoin

-Solution 2: Ou on considère que c'est la voiture qui a un garage, et donc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
class voiture
{
String couleur;
Garage garage;
}

Le but est de pouvoir accéder facilement à un attribut d'une classe à partir d'une autre.

Par exemple, je veux l'adresse du garage de ma voiture :
Avec la solution 1: Je parcours la liste des voitures de tous mes garages pour trouver ma voiture
Avec la solution 2: maVoiture.garage.adresse

On voit clairement que la solution 2 est mieux, mais si je veux la couleur des voitures de mon garage:
Avec la solution 1: Pour i=0 to voitures.size() -> monGarage.voitures.get(i).couleur
Avec la solution 2: Je parcours toutes mes voitures pour retrouver celles qui sont dans mon garage.


Et donc dans ce cas là, la seconde solution est la première solution est plus appropriée.


J'en viens donc à ma question:
Je ne sais pas aujourd'hui comment sera utilisée l'application, j'aurais peut être à traiter le problème 1 ou le 2 ou les deux.
Comment feriez-vous? On combine les deux solutions?

Merci!