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

Langage C++ Discussion :

Choix de conception délégation vs héritage multiple


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 18
    Par défaut Choix de conception délégation vs héritage multiple
    Bonsoir,

    Je suis en train de programmer une application C++ qui permet la création d'une fenêtre avec un contexte OpenGL, j'aimerai qu'elle soit portable sous linux(X11) et Windows. Je suis conscient qu'il existe des tas de bibliothèques qui font ce que je cherche à faire et que je suis en train de "réinventer la roue" mais mon but est simplement d'apprendre à programmer correctement.

    J'ai une classe abstraite OpenGLWindow dont hérite une classe OpenGLScene et j'aimerai réaliser le traitement des événements (clavier souris etc.) ma fonction de callback étant un membre privé de OpenGLWindow. J'aimerai cependant pouvoir modifier les paramètres de OpenGLScene grâce à cette fonction. Là deux choix s'offrent à moi. Le premier, créer une classe abstraite EventHandler dont hériterai OpenGLScene de sorte que l'on code la gestion des événements dans OpenGLScene directement. Le second étant de créer une même classe abstraite AbstractEventHandler mais d'en faire un membre de OpenGLWindow, de sorte qu'il faille créer une classe concrète EventHandler et de la passer au constructeur de la fenêtre.

    Je pencherai personnellement pour la deuxième approche, j'aimerai cependant avoir des avis sur ces deux méthodes, selon vous laquelle semble le plus appropriée pour résoudre mon problème ?

    Merci d'avance de vos réponses,
    Cordialement Kandro.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    J'ai rarement fait de la programmation d'IHM et événementielle, mais pour info, la bible des design patterns se concentre sur ces problématiques.

  3. #3
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Hello,

    Citation Envoyé par kandro Voir le message
    J'ai une classe abstraite OpenGLWindow dont hérite une classe OpenGLScene
    Je dirai plutôt qu'une fenêtre contient 1 (ou plusieurs) scène(s). C'est bizarre de dire qu'une scène est une fenêtre.

    Sinon, j'ai bossé sur lib similaire récemment. Pour le traitement des événements j'ai fais ça en 2 temps :

    Chaque Widget contient un EventHandler, quand un message est reçu (venant de l'OS), il traverse la hiérarchie de Widgets pour être éventuellement traité par un Widget.

    L'EventHandler du Widget traite le message. Le Widget s'abonne auprès de son EventHandler à des "événements simples" du type "la souris survole cette zone", "un clic à eu lieu sur cette zone" etc... et le Widget est en charge de convertir cet "événement simple" en "événement complexe".

    Par exemple un bouton peut transformer "un clic à eu lieu sur cette zone" en "onClick", alors qu'une fenêtre le transformera en "onClose", etc...

    Ainsi les utilisateurs de la lib peuvent s'abonner à ces "événements complexes" auprès des Widgets.

    Je ne sais pas si la meilleure solution par contre, mais ça permet de factoriser pas mal de code.

Discussions similaires

  1. Quels motifs de conception en remplacement de l'héritage multiple ?
    Par Neuromancien2 dans le forum Débats sur le développement - Le Best Of
    Réponses: 26
    Dernier message: 16/06/2011, 01h50
  2. [PHP 5.2] Héritage multiple obligatoire ou mauvaise conception ?
    Par sinasquax dans le forum Langage
    Réponses: 2
    Dernier message: 19/01/2010, 02h31
  3. [Conception] Simuler un héritage multiple
    Par dev01 dans le forum Général Dotnet
    Réponses: 32
    Dernier message: 13/08/2008, 16h21
  4. [heritage][conception]héritage multiple en java!
    Par soulhouf dans le forum Langage
    Réponses: 9
    Dernier message: 25/08/2005, 20h03
  5. [XML Schemas]héritage multiple
    Par nicolas_jf dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 10/06/2003, 12h55

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