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 :

Pb conception C++


Sujet :

C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 123
    Par défaut Pb conception C++
    bonjour,

    J'ai une question de conception en c++. Je débute en programmation objet et j'ai conçu une application graphique basée sur une boite de dialogue.

    Pour simplifier et donner un exemple concret, un utilisateur choisit le titre d'un ouvrage, l'application se connecte à une base de donnée et récupère les informations de l'ouvrage(année, auteur,...)

    Pour réaliser cela, j'ai deux classes principales, une permettant de gerer les bases de données, d'effectuer des requêtes et une autre représentant l'ouvrage et ses attributs.

    Les deux classes ont un couplage nul ce qui me permet la réusabilité de ces classes ailleurs mais du coup le code applicatif dans mes évènements est trop gros et difficile à maintenir. Si j'opte pour un couplage fort , je perd ma reusabilité mais je simplifie grandement mon code applicatif. L'application fonctionne mais je pense que je manque encore d'abstraction et j'ai peut etre mal cerné le problème. Qqun aurait-il une idée de la démarche à adopter pour rendre cela maintenable? (crétion de classe tierce, heritage des classes de bases,.....)

    merci

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    A vrai dire, il n'y a rien à faire, il faudra bien à un moment que les deux classes se rejoignent quelque part...

    Ta classe qui "attaque" la base de donnée serait un candidat idéal pour contenir la classe ouvrage...

    Si tu veux que les deux soient strictement réutilisable, le plus facile est sans doute de créer une troisième classe qui soit la spécialisation (héritage) de la première pour fournir les informations sous la forme de la deuxième à l'application...

    L'idée de l'utilisation de template pourrait sembler intéressante, étant donné que les comportement de la classe qui attaque la base de données sont toujours identiques:
    • envoyer la requete
    • (obtenir la réponse)
    • fournir les données sous la forme adéquate (un template permet de n'avoir que cette fonction à spécialiser)


    En fait, il faut, ni plus ni moins, partir sur le principe du "Modele Vue Controleur"
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre chevronné Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Par défaut
    Je te conseillerai de faire un heritage de classe ou d'interface sur tes classes d'accées aux données. Mais d'un autre coté il peut etre interessant de réaliser un accées aux données generalisé (une classe pour tes requetes).
    Je te conseil cette article appliquer aux PHP : http://www.symfony-project.org/book/...Symfony-s-Code

    En theorie, ou avec des exemples simple tout est généralement simple, mais dès que l'on touche à la réalité c'est different. Le plus dur est de faire la par des chose en la reutilisation du code, et la simplification.

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 123
    Par défaut
    ok,je vous remercie, je vous rejoins concernant l'heritage de classe ou d'interface. Je vais jeter un coup d'oeil à tout ça.

    merci pour le lien themadmax, il est super!

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

Discussions similaires

  1. [Concept] Métadatas ?
    Par melinda dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 10/11/2004, 11h56
  2. [Concept] Réplication
    Par melinda dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 31/03/2003, 17h29
  3. [Concept] BD ou Gestion par fichier. Intérêt de la BD ?
    Par Cian dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/11/2002, 12h16
  4. [Concept] Curseur coté client et curseur coté serveur
    Par freud dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 13/09/2002, 22h13
  5. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16

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