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 :

Principe d’inversion des dépendances


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut Principe d’inversion des dépendances
    Bonjour à tous.
    Je me pose une petite question.
    Je vais sans doute recoder avec Qt un petit logiciel qui permet de changer le fond d'écran automatiquement.
    Faut t'il que j'utilise Qt pour me fournir les classes de vecteurs,strings ... ou faut il que j'utilise ceux de la STL ?

    En effet, utiliser ceux de Qt m'apporte des avantages non négligable mais cela revient a violer le DIP.

    Utiliser ceux de la STL me permet d'avoir un code compilable même si je change de lib pour ma GUI et je ne viole pas le DIP mais je me bouffe des classes moyennement concus.

    Alors, votre avis ?

    Merci.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par défaut
    Citation Envoyé par Davidbrcz Voir le message
    ceux de la STL /**/ classes moyennement concus.
    Juste pour participer , pourquoi tu dis ca, a mon avis(pas expert) elles sont bien celle de la STL. Et en plus comme tu dis c'est plus portable. Celles de Qt ont plus de fonctions?

    Et sinon c'est quoi un DIP?

  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
    Le COW peut avoir un prix sous certaines circonstances, ou présenter un avantage en l'absence de sémantique de déplacement selon les écritures.

    Perso je préfère avoir mes noyaux indépendants de tout framework. Si maintenant tu sais que tu pars sur du Qt à tout jamais et que tanpis pour les vecteurs du C++0x ... pourquoi pas.
    Un truc qui se fait, c'est de ne jamais écrire en dur que les types de tes classes sont des std::vector<> ou autre. Passe par des typedefs à la place. Ceci dit, cela ne sera valable que si les interfaces de manipulations sont identiques.
    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
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Citation Envoyé par kacedda Voir le message
    Juste pour participer , pourquoi tu dis ca, a mon avis(pas expert) elles sont bien celle de la STL. Et en plus comme tu dis c'est plus portable. Celles de Qt ont plus de fonctions?

    Et sinon c'est quoi un DIP?
    Disons que certaines classe de la STL gene std::string sont un peu (beaucoup) des classe foure-tout assez mal foutu (AMHA).
    Et puis quand tu compare avec celle de Qt (http://qt.developpez.com/doc/4.3/qstring-members/) ya pas photo

    Sinon : Principe d’inversion des dépendances <=> Dependency Inversion Principle (DIP)

    Citation Envoyé par Luc Hermitte Voir le message
    Le COW peut avoir un prix sous certaines circonstances, ou présenter un avantage en l'absence de sémantique de déplacement selon les écritures.
    COW ?

    Citation Envoyé par Luc Hermitte Voir le message
    Perso je préfère avoir mes noyaux indépendants de tout framework. Si maintenant tu sais que tu pars sur du Qt à tout jamais et que tanpis pour les vecteurs du C++0x ... pourquoi pas.
    Disons que quand je code des truc qui sont capable de me reservir,moi aussi.
    Mais là,cette application aur un rôle bien précis et je ne me vois pas réutiliser son code plus tard.

    Et puis une application n'est jamais figé.La première version de celle ci était avec wxWidgets. La V2 sera avec Qt.La V3 sera peut être avec C++Ox .
    Alors dire que je part dans Qt pour tout jamais c'est s'aventurer beaucoup trop loin.


    Citation Envoyé par Luc Hermitte Voir le message
    Un truc qui se fait, c'est de ne jamais écrire en dur que les types de tes classes sont des std::vector<> ou autre. Passe par des typedefs à la place. Ceci dit, cela ne sera valable que si les interfaces de manipulations sont identiques.
    ><
    Je faisait malheursement le contraire quand j'ai codé cette appli.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  5. #5
    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
    Citation Envoyé par Davidbrcz Voir le message
    COW ?
    Copy On Write. On en a déjà parlé ici (en rapport avec Qt en particulier). Et tu trouveras des choses à ce sujet sur GOTW (Guru Of The Week -> www.gotw.ca/gotw/)


    Citation Envoyé par Davidbrcz Voir le message
    Je faisait malheursement le contraire quand j'ai codé cette appli.
    Cela devrait te permettre de switcher rapidement entre le vecteur standard et celui de Qt (tant que tu n'utilises pas les spécificités d'itération de Qt)[1], mais peut-être pas pour les chaînes si justement tu recherches une dont l'interface est mieux foutue.

    [1] quoique je j'ai un doute, car j'ai l'impression (je peux me tromper) que le COW pousse au passage par copie, plutôt que par référence constante.
    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...

  6. #6
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Citation Envoyé par Luc Hermitte Voir le message
    Copy On Write. On en a déjà parlé ici (en rapport avec Qt en particulier). Et tu trouveras des choses à ce sujet sur GOTW (Guru Of The Week -> www.gotw.ca/gotw/)
    Merci.

    Cela devrait te permettre de switcher rapidement entre le vecteur standard et celui de Qt (tant que tu n'utilises pas les spécificités d'itération de Qt)[1], mais peut-être pas pour les chaînes si justement tu recherches une dont l'interface est mieux foutue.

    [1] quoique je j'ai un doute, car j'ai l'impression (je peux me tromper) que le COW pousse au passage par copie, plutôt que par référence constante.
    Je suis sans doute mal expliqué.Dans la V1 de l'application, il n'y aucun typedef,que des conteneur/string ébasé sur wxWidgets et écrit en dûr dans mon code.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

Discussions similaires

  1. Make: génération des dépendances avec gcc
    Par Syrmonsieur dans le forum Systèmes de compilation
    Réponses: 1
    Dernier message: 08/06/2006, 15h22
  2. gestion des dépendances
    Par zola dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/05/2006, 13h34
  3. Recherche des dépendances
    Par dauphin34000 dans le forum Oracle
    Réponses: 6
    Dernier message: 25/04/2006, 13h32
  4. conception : table des dépendances
    Par gregolak dans le forum Langage SQL
    Réponses: 12
    Dernier message: 09/10/2005, 16h10
  5. Recherche des dépendances des modules
    Par slowpoke dans le forum Mandriva / Mageia
    Réponses: 9
    Dernier message: 11/12/2003, 08h49

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