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 :

Gestion dynamique d'objets dynamiques pour des libs dynamques


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut Gestion dynamique d'objets dynamiques pour des libs dynamques
    Bref, du dynamique

    Je continue mon refactoring et je suis encore tombé sur une question existentielle (avec mort de bébé lapin probablement).

    Le contexte : dans un application plugable, on peut avoir des créations d'objets dont le type n'est pas connu à l'avance, ni le nombre d'objet, ni les dépendances entre les objets. Par exemple, on peut avoir :
    - un plugin "gui1" qui créé un objet "MainWinow" qui peut prendre en charge des objets de type "Widget"
    - un plugin "gui2" qui ajoute un objet "Vues" qui est un "Widget" et qui prend en charge des objets de type "Vue"
    - un plugin "gui3" qui ajoute un objet "TableVue" qui est une "Vue"
    - un plugin "gui4" qui ajoute un objet "TreeVue" qui est une "Vue"
    etc.

    Habituellement, je gère ça avec une collection globale d'objet avec typage faible (type boost any). Chaque plugin ajoute ses objets dans la collection lors de l'initialisaton. Quand un objet a besoin d'avoir la liste des objets qu'il gère, il parcourt la collection en faisant des casts pour vérifier que c'est un type pris en charge (c'est la méthode utilisée par exemple dans QtCreator)

    L'utilisation du any + des casts me semble pas top. Je me demandais s'il était possible de concevoir une architecture qui évite cela ?

    J'ai pensé utiliser des collections spécifiques dans les objets "gestionnaires" (càd ceux qui prennent en charge d'autres objets), de type ObjetGestionnaire::Collection<ObjetGéré> ou Collection<ObjetGestionnaire, ObjetGéré>. Cela oblige d'avoir une liste d'objet gestionnaire ou une liste de collection et il faut passer par un dispatcher (par exemple un DP chaine de commande) lorsqu'un plugin veut ajouter une nouveau ObjetGéré (pour trouvé le bon gestionnaire ou la bonne collection)

    Des critiques ou de meilleures idées ? (ou des questions parce que j'ai encore mal expliqué mon problème ?)

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Je pense que quoi que tu fasses, cela se résumera à des dynamic_cast<> déguisés. Y compris si tu faisais un truc ressemblant au QueryInterface() de COM.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. gestion des évènements sur objets dynamiques
    Par boss_gama dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/03/2009, 11h50
  2. Réponses: 3
    Dernier message: 24/01/2007, 10h26
  3. Des objets dynamiques?
    Par ben_ghost dans le forum VC++ .NET
    Réponses: 5
    Dernier message: 04/08/2006, 17h57
  4. Réponses: 2
    Dernier message: 16/06/2006, 14h14
  5. [FLASH MX] Un menu dynamique pour des vidéos .flv
    Par Edoxituz dans le forum Flash
    Réponses: 10
    Dernier message: 12/02/2006, 15h46

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