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 :

Design, Quel pattern utiliser ?


Sujet :

C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 48
    Par défaut Design, Quel pattern utiliser ?
    Bonjour,
    Mon problème est, je pense, assez classique. Aussi je vous demande conseil quand au choix du design pattern le plus adapté.

    Pour des besoins en applications scientifiques, j'ai besoin de faire du calcul intensif où je maltraite sans vergogne mes classes.

    Dans un deuxième temps j'ai besoin d'afficher des résultats.
    Cela m'embête de mettre dans mes classes des éléments ne servant pas au calcul mais qui sont juste là pour faire jolis (couleurs, épaisseurs des traits, etc...).

    J'ai vu la pattern du décorateur qui répond à mes besoins, mais cela est tout de même un peu intrusif... Une idée ?
    Merci !

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    Citation Envoyé par omc24 Voir le message
    Bonjour,
    Mon problème est, je pense, assez classique. Aussi je vous demande conseil quand au choix du design pattern le plus adapté.

    Pour des besoins en applications scientifiques, j'ai besoin de faire du calcul intensif où je maltraite sans vergogne mes classes.

    Dans un deuxième temps j'ai besoin d'afficher des résultats.
    Cela m'embête de mettre dans mes classes des éléments ne servant pas au calcul mais qui sont juste là pour faire jolis (couleurs, épaisseurs des traits, etc...).

    J'ai vu la pattern du décorateur qui répond à mes besoins, mais cela est tout de même un peu intrusif... Une idée ?
    Merci !
    Il n' s'agit pas à proprement parler d'un pattern, mais d'un système plus général : d'un coté, tu as des données auxquelles tu associes un ensemble de comportements codifiés - c'est ce qu'on appelle le modèle (ou modèle métier; ou avec des noms encore plus étrange). De l'autre coté, tu as la gestion de l'interface graphique, séparée en deux parties :

    1) l'affichage, qui prends les données dans le modèle afin de les afficher. C'est la Vue.

    2) le système de gestion des entrées utilisateurs, qui permet à l'utilisateur d'agir sur le modèle, par exemple pour lancer un calcul spécifique ou pour déterminer un ensemble de données à injecter dans les fonctions définies. C'est ce qu'on appelle un Contrôleur, parce qu'il permet de contrôler ce que fait l'application.

    L'ensemble est une triade célèbre, parfaitement inapplicable en l'état, et qu'on appelle triade MVC (pour Modèle/Vue/Contrôleur).

    Dans ce cadre, tes classes "Vue" inspectent tes classes "Modèle". Dans le même esprit, tes classes "Contrôleur" ont la possibilité de modifier ce modèle (ou de lui donner l'ordre de se modifier, ce qui revient au même). Le pseudo-diagramme de classe proposé dans l'article de Wikipedia donne une idée de l'architecture générale. Sache toutefois que cette vision très haut niveau sera impossible à implémenter telle quelle. Ce que tu va implémenter, c'est un système similaire, généralement appelée MVC hiérarchique ou PAC (Présentation-Abstraction-Contrôleur; a noter que ce n'est pas le même contrôleur. Ne sont-ils pas minions ces informaticiens, à utiliser les mêmes mots pour des concepts différents ? ). Pour simplifier, PAC est comme MVC, mais il admet qu'on ne peut pas représenter la totalité du modèle avec une seule vue. Il découpe donc MVC en mini-MVC d'application locale (par exemple, une boite de dialogue permettant de modifier les coefs a,b de l'équation d'une droite).
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 48
    Par défaut
    Merci de ta réponse,
    Oui le modèle vue-contrôleur est séduisant mais mon implémentation de ce design, heu pardon modèle , n'est pas trés satisfaisant.

    Je des tas de std::map qui associent à un objet un autre objet que j'appelle "décorateur" : couleurs, etc...
    Cela permet d'associer des attributs décoratifs à des classes, mais cela rend le code assez illisible et donc.... tout pourrave !

    As-tu des exemples d'applications ?

    Sinon, lors de la visualisation mes objets sont en lecture seule, je ne touche pas à leurs attributs.

Discussions similaires

  1. Quel design pattern utiliser?
    Par spektrum dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 28/07/2010, 09h59
  2. Quel pattern utiliser ?
    Par mika91 dans le forum C#
    Réponses: 3
    Dernier message: 19/05/2010, 11h41
  3. Quel pattern utiliser pour changer les possibilités d'un objet
    Par lichman dans le forum Design Patterns
    Réponses: 4
    Dernier message: 05/10/2007, 14h02
  4. Réponses: 3
    Dernier message: 27/08/2003, 21h14
  5. Réponses: 2
    Dernier message: 11/07/2002, 08h31

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