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

Design Patterns Discussion :

Quel Design Pattern choisir?


Sujet :

Design Patterns

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 38
    Par défaut Quel Design Pattern choisir?
    Bonjour,

    Voilà, j'ai une application qui utilise énormement de DataGridView et de Form, chaque Form possède au minimum un datagridView,et comme vous vous en doutez des opérations qui se répétent. C'est toujours la même histoire , opération pour se connecter à la base, pour remplir le DataSet, opération pour configurer le datagridview etc...
    Il est vrai que ces opérations rendent mes Forms extrement longues et complexes, je suis d'accord pour dire qu'il y a un problème de conception et qu'il faut externaliser certaines opérations comme citées ci-dessus...
    Alors j'avais pensé au DP Stratégie, on a une classe on va dire dans mon cas cela sera ma Form et on lui passe en argument l'interface de ma stratégie, donc on pourra passer en paramètre toutes les classes qui configure mes dataGridView et qui implément l'interface stratégie...

    Qu'en pensez vous chers Architectes????

    Merci d'avance pour tous vos conseils...

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Ca serait pas plutot le "DP Builder" pour ton exemple de Forms ?

    Apres tu pourras optimiser en créant une abstract factory de Builder.
    Puis encore plus optimiser en utilisant des strategies dans l'abstract factory.

    Et puis apres, tu découvres que tu viens de recoder un framework de présentation
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 38
    Par défaut
    Tu veux va dire que j'exagère, mais pourquoi le DP Builder??? et comment l'utiliser??

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par Aïssa
    Tu veux va dire que j'exagère, mais pourquoi le DP Builder???
    Pour pouvoir reutiliser ton code récurrent de remplissage et de configuration

    et comment l'utiliser??
    un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Form form = new MonFormA();
    DataSet ds = new MonDataSet1();
    
    FormBuilder fb = new FormBuilder( form );
    fb.configureGrid( bla_bla_bla );
    fb.fillGrid( ds );
    
    form.show();
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 38
    Par défaut
    Et si je faisais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Form SaisieDevis = new SaisieDevis( new maStrategie() );
    et dans le code de la Form Saisie Devis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DataSet ds;
    DataGridView dgv;
    // Constructeur de la fenetre
    public void SaisieDevis(Stategie strg)
    {
       strg.Init( dgv, ds);
       strg.Configure(dgv);
    }
    qu'en penses tu???

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Bah j'en pense que c'est pareil. Ce que j'ai appelé "fb" tu l'as appelé "strg". Donc en fait, c'est un Builder.

    Sauf qu'en plus, tu le passes en parametre du constructeur de ta classe. Donc tu l'utilises comme une strategie. Sans doute pour pouvoir changer le contenu ou l'apparence de ta grille sans modifier le code "metier" de SaisieDevis. c'est ca ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

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

Discussions similaires

  1. [Débutant] Quel design pattern choisir pour le J2EE ?
    Par ghost10 dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 06/11/2010, 09h31
  2. [C++] quel design pattern choisir ?
    Par scol30 dans le forum Design Patterns
    Réponses: 1
    Dernier message: 26/06/2009, 13h35
  3. Réponses: 9
    Dernier message: 05/12/2006, 10h00
  4. Réponses: 5
    Dernier message: 21/06/2006, 14h47
  5. Quel design pattern pour réaliser une synthèse
    Par jbwan dans le forum Design Patterns
    Réponses: 3
    Dernier message: 21/04/2006, 12h39

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