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 Command et boost::function


Sujet :

C++

  1. #1
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut Pattern Command et boost::function
    Bonjour à tous,

    Je me demande un truc là, comme ça. On me l'a déjà fait remarqué précédemment, mais est-ce que boost::function ne permet pas de remplacer le pattern Command, en mieux ? i.e plus souple, plus efficace avec les bind et autres joyeusetés...

    Parce que hériter d'une classe Command classique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class Command
    {
       void Execute() const;
       void Cancel()  const;
    };
    juste pour implémenter Execute(), c'est bien. Mais je me demande si boost.Function ne permet pas mieux ?

  2. #2
    Membre émérite Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    Par défaut
    Citation Envoyé par poukill Voir le message
    Bonjour à tous,

    Je me demande un truc là, comme ça. On me l'a déjà fait remarqué précédemment, mais est-ce que boost::function ne permet pas de remplacer le pattern Command, en mieux ? i.e plus souple, plus efficace avec les bind et autres joyeusetés...

    Parce que hériter d'une classe Command classique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class Command
    {
       void Execute() const;
       void Cancel()  const;
    };
    juste pour implémenter Execute(), c'est bien. Mais je me demande si boost.Function ne permet pas mieux ?
    C'est pas avec toi qu'on en avait parlé ya pas longtemps? On avait déduit que si justement.

    Une commande qui n'exécute qu'une seule fonction, est une fonction (au sens impératif, procédural, du terme...) ! Donc peut être remplacée par boost::function muni du bon type.

    Stocker des commandes = stocker des boost::function.

    Une commande avec un état interne = boost::function vers une fonction/foncteur avec un paramètre lié (Boost.Bind).

  3. #3
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 287
    Par défaut
    Je disais bien que cela me disait quelque chose (merci M. G.)
    http://www.developpez.net/forums/sho...&postcount=216
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  4. #4
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Effectivement, mais à l'époque je ne maitrisais pas autant Boost que maintenant...
    Donc OK Boost.Function, couplé avec Boost.Bind est mieux !

    Merci HanLee et Luc!

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

Discussions similaires

  1. Réponses: 19
    Dernier message: 16/09/2008, 11h44
  2. [Pattern Command] Lien à mettre à jour
    Par poukill dans le forum C++
    Réponses: 14
    Dernier message: 21/02/2008, 08h41
  3. Crash avec boost::function
    Par Bakura dans le forum Boost
    Réponses: 15
    Dernier message: 22/12/2007, 16h26
  4. [Boost.Function] Appeler une fonction "externe"
    Par poukill dans le forum Boost
    Réponses: 17
    Dernier message: 29/08/2007, 16h04
  5. [boost] Problème avec boost::function
    Par Bakura dans le forum Boost
    Réponses: 3
    Dernier message: 22/03/2007, 20h08

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