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

UML Discussion :

Lien entre classe: contient ou est contenu?


Sujet :

UML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de docv266
    Profil pro
    Inscrit en
    Août 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 85
    Par défaut Lien entre classe: contient ou est contenu?
    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!

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    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 545
    Par défaut
    Bonjour
    Citation Envoyé par docv266 Voir le message
    On combine les deux solutions?
    oui, et au niveau UML cela donne une relation bidirectionnelle, surtout pas deux relations unidirectionnelles de sens opposées ce qui est sémantiquement moins fort

    j'espère quand même que la voiture a le droit de sortir du garage
    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 confirmé Avatar de docv266
    Profil pro
    Inscrit en
    Août 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 85
    Par défaut
    Très bien, merci!

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

Discussions similaires

  1. WebService et ComplexType : lien entre classes
    Par macben dans le forum JWS
    Réponses: 1
    Dernier message: 01/10/2009, 10h11
  2. Liens entre classes Monad, Functor, etc.
    Par limestrael dans le forum Haskell
    Réponses: 15
    Dernier message: 11/08/2009, 20h10
  3. liens entre classes
    Par gate35 dans le forum Débuter
    Réponses: 7
    Dernier message: 28/05/2009, 17h01
  4. Réponses: 7
    Dernier message: 28/04/2009, 17h46
  5. Réponses: 13
    Dernier message: 20/10/2005, 13h42

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