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 :

Design Pattern Builder en C++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut Design Pattern Builder en C++
    A quoi sert le Waiter ? Logiquement, si le processus de construction est connu, on place une méthode process() dans l'interface de Builder qui ne fait qu'appeller des méthodes virtuelles pures.

    Je crois que je rate l'enjeu et pourtant j'ai lu quelques explications sur la toile et pas mal regardé d'examples...

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Salut,

    Je ne trouve pas de 'Waiter' dans la référence (le GoF) sur la page du pattern 'Builder', tu as un lien vers celui dont tu parles ?

    MAT.

  3. #3
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Excuse-moi, je pense que j'étais en train de lire les implémentations du wiki qui prennent un serveur (waiter) comme exemple : http://en.wikipedia.org/wiki/Builder_pattern

    Je voulais parler du Director.
    Dans l'exemple donné, il se contente d'appeler les trois methodes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    // Director
    class Waiter
    {
        PizzaBuilder* pizzaBuilder;
    public:
        Waiter() : pizzaBuilder(NULL) {}
        ~Waiter() { }
     
        void SetPizzaBuilder(PizzaBuilder* b) { pizzaBuilder = b; }
        std::auto_ptr<Pizza> GetPizza() { return pizzaBuilder->GetPizza(); }
        void ConstructPizza()
        {
            pizzaBuilder->createNewPizzaProduct();
            pizzaBuilder->buildDough();
            pizzaBuilder->buildSauce();
            pizzaBuilder->buildTopping();
        }
    };
    Alors pourquoi ne pas avoir fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    // Abstract Builder
    class PizzaBuilder
    {
    protected:
        std::auto_ptr<Pizza> pizza;
    public:
        PizzaBuilder() {}
        ~PizzaBuilder() {}
        std::auto_ptr<Pizza> GetPizza()
      {
         createNewPizzaProduct();
         buildDough();
         buildSauce();
         buildTopping();
         return pizza;
      }
     
        void createNewPizzaProduct() { pizza.reset (new Pizza); }
     
        virtual void buildDough()=0;
        virtual void buildSauce()=0;
        virtual void buildTopping()=0;
     
    };
    L'exemple est-il mauvais ou j'ai raté une subtilité ?

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Et si tu veux pas de sauce sur ta pizza ?

    MAT.

  5. #5
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Ok je crois que je saisi un peu mieux. Faudrait que je trouve des examples un peu plus évolués. Merci

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

Discussions similaires

  1. Design pattern Builder directeur Singleton
    Par totoche dans le forum Logging
    Réponses: 2
    Dernier message: 21/09/2009, 13h02
  2. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  3. [Observateur] Précisions sur le design pattern Observer [UML]
    Par joquetino dans le forum Design Patterns
    Réponses: 2
    Dernier message: 07/10/2004, 22h35
  4. Les Designs Patterns Entreprise
    Par boulon dans le forum Design Patterns
    Réponses: 4
    Dernier message: 01/09/2004, 19h16
  5. [Design Patterns] Architecture 3 tiers
    Par HPJ dans le forum Design Patterns
    Réponses: 1
    Dernier message: 29/07/2003, 11h49

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