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 :

Principe de la composition


Sujet :

UML

  1. #1
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut Principe de la composition
    Bonjour,

    J'aimerai avoir votre avis sur la question de la composition en UML.
    Je développe une application C# et je veux savoir comment est ce que vous créerez par exemple les objets clients / contrats / options.
    Client -> n contrats -> n options

    De mon côté en C# j'ai les objets suivants:

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class client{
        private List<contrat> listContrats; 
    }
     
    public class contrat{
        private List<optionEngagement> listOptions;
    }
     
    public class optionEngagement
    {
        private DateTime dtStart; 
        private DateTime dtEnd;
    }

    La problématique se pose lorsque je dois charger depuis la BDD tous les clients... [1 requête type select *]
    Cela nécessite le chargement pour chaque client des contrats associés ... [1 requête par client type select * where]
    Ce qui signifie le chargement des options pour chaque contrat, etc... [1 requête par contrat par client de type select * where]

    N'est ce pas trop lourd ? Comment est ce vous feriez ?
    De mon côté je suis aujourd'hui confronté à des problèmes de performance.

  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,

    Au niveau UML utiliser une composition n'implique pas qu'il faut impérativement charger les contrats lorsqu'un client l'est, et les options lorsqu'un contrat l'est. La composition dit simplement que la destruction d'un client implique la destruction de ses contrats, et la destruction d'un contrat implique la destruction de ses options.

    Évidemment le plus simple quand on charge un client est aussi de charger ses contrats etc, mais en utilisant des getters il est possible de ne charger de façon transparente les informations à partir de la DB que lorsque cela est nécessaire
    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

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 28/02/2007, 12h18
  2. barre de menu principal
    Par norfelt dans le forum IHM
    Réponses: 10
    Dernier message: 27/10/2003, 11h37
  3. projet suivant le principe de MSN
    Par Walm dans le forum Développement
    Réponses: 2
    Dernier message: 30/09/2003, 12h36
  4. Directive, principe delphi
    Par Arrown dans le forum Débuter
    Réponses: 3
    Dernier message: 09/09/2003, 18h32
  5. [WSAD] Composition visuelle d'une applet
    Par schum11 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 09/04/2003, 16h19

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