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

C++ Discussion :

Pattern Builder "dynamique"


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 89
    Par défaut Pattern Builder "dynamique"
    Bonjour,

    [A noter que je mets la question dans ce forum car je code essentiellement en C++ ... mais je pense qu'elle est valide pour d'autres langages].

    Les différents exemples que j'ai pu croiser sur les builders m'ont l'air assez statiques, au sens ou on a une classe Builder d'interface et ensuite une autre classe pour chaque type de produit (par exemple "Builder_Pizza_X", "Builder_Pizza_Y", etc.).
    Ces exemples me semblent cependant assez statiques, au sens où la valeur des paramètres de la Pizza sont définis à l'avance. En d'autre terme, si l'on veut construire une Pizza_Z dont la valeur des paramètres dépendrait d'un input de l'utilisateur (i.e. "dynamique"), on revient à une solution plus classique avec des "setters" (on instancie le produit et ensuite on définit la valeur de ses paramètres par set...).
    Autrement dit, et pour reprendre l'analogie avec la pizza, le builder permet de fabriquer une pizza parmi celles proposées sur un menu et non pas de créer la pizza "à la carte" où je choisi mes ingrédient selon mon humeur.
    Le seul exemple "dynamique" que j'ai vu et qui me semble intéressant (en particulier pour le "chaining" qu'il propose est ici http://www.drdobbs.com/jvm/creating-...8403883?pgno=2 ... mais est-ce dans l'esprit des builder du "Gang of 4"?
    Merci d'avance pour vos réponses.
    Christian

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    rien ne t'empêche d'avoir un constructeur avec des variadic templates, si ce n'est peut-être le bon sens.
    L'ordre et le type des arguments doit être considéré, alors je ne vois pas par quel moyen, hors usine à gaz, tu pourrais mettre en pratique une telle chose.
    Et la méthode que tu indiques dans ton lien est finalement ce qui se fait le plus souvent dans un tel cas. Simplicité de mise en oeuvre et d'utilisation.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Par défaut
    Salut,

    Je ne vois pas ce qui t'empêche d'utiliser un builder, et ce même si tes pizzas ne sont pas à la carte. Il te suffit dans ton builder de créer une méthode "add_ingrédient( ingrédient )". Soit l'ingrédient n'est qu'une chaine de caractère et là c'est facile. Soit chaque ingrédient à un type différent et dans ce cas tu passes par une classe de base Ingrédient avec du virtuel. Généralement un builder n'est pas statique comme tu l'entends ! Si tu as un builder "Build_Pizza_Mozarella" alors ça revient à avoir une variable statique pizza déjà instancié avec les bons arguments, ou plutôt une fabrique.

    Le builder, à mon sens, sert principalement quand tu "devrais" passer trop d'arguments au constructeur.

Discussions similaires

  1. [xsl]simuler le mecanisme OO de "liaison dynamique"
    Par philemon_siclone dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 19/12/2003, 11h34

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