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 :

Classe + design pattern factory


Sujet :

C++

  1. #1
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut Classe + design pattern factory
    Bonjour,

    Voilà dans une de mes classes, j'ai un objet qui stocke une grande matrice sur le disque dur. Le problème c'est que parfois je pourrais stocker cette matrice directement en mémoire (via un autre objet). Question: "Comment en fonction d'un paramètre que je passerais à cette classe, pourrais-je utiliser tantôt utiliser l'objet matriceA tantôt l'objet matriceB, sans dupliquer de code bien sûr et de la manière la plus propre, pour stocker ma matrice?" Je pourrais templatée ma classe... mais ça ne me semble pas la meilleure solution ou alors utiliser un design pattern factory...

    Cordialement,
    Rodrigue
    Rodrigue

  2. #2
    Membre expérimenté
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Points : 1 640
    Points
    1 640
    Par défaut
    C'est le modèle pont. Tu as une implémentation qui travaille en mémoire, l'autre sur le disque. Cherche sur google pour des infos sur le modèle pont. Suivant le cas, tu fait un truc du genre "setImpl(InMemoryMatrix)" ou "setImpl(DiskMatrix)". Le code commum va dans une classe abstraite Impl.

    Enjoy !
    En premier lieu, utilisez un moteur de recherche.
    En second lieu, postez sur le forum adéquat !

  3. #3
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut
    Merci pour ta réponse mais quand je tapes sur google "modèle pont + "c++"", je ne trouve absolument rien !
    Rodrigue

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Salut,

    Essaye avec : bridge pattern

    MAT.

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Il est aussi possible de passer par un pattern proxy qui chargera au fur et à mesure ce qu'il faut dans la mémoire.
    Je pense que les expressions templates dans les bibliothèques matricielles peuvent en être un bon exemple pour montrer qu'on peut calculer juste ce qu'il faut.
    http://pcaboche.developpez.com/artic...=page_6#L2.3.1

  6. #6
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Si tu n'as besoin de faire ce choix qu'à la compilation tu peux utiliser des templates au lieu du polymorphisme.
    Boost ftw

  7. #7
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut
    Pas mal du tout le design pattern Proxy... mais bon ça risque d'être chaud Je ne vois pas bien comment bufferiser une stxxl:map...
    Quant au design pattern bridge, merci de me l'avoir fait découvrir mais à bien y réfléchir, c'est vrai que bufferiser mes données serait plus optimal.
    Rodrigue

  8. #8
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut
    En fait, il faudrait que je bufferise en mémoire mes données les plus utilisées... un peu comme dans windows avec la swap. Je spécifierais un nombre maximum de buffer. A chaque utilisation d'un des buffers, j'incrémenterais une variable ce qui me permettrait de les classer. Dans le cas où le buffer n'est pas encore en mémoire alors le moins utilisé serait releasé et je chargerais le nouveau buffer à sa place. Mon type de données est une valeur [index2D, pour faire simple] associée à une clé [std::set].
    A votre avis comment je pourrais faire ça? Je pense
    • à une multimap pour la gestion des priorités des buffers: clé[priorité], valeur[index std::vector<std::set<.>>]
    • à un std::vector<std::set<.>> pour gérer les buffers de taille fixe

    Ca ne m'a pas l'air efficace et en plus je ne sais pas accéder facilement aux priorités pour les incrémenter . Il faudrait que je crée encore un autre conteneur, à mon avis il y a moyen de faire beaucoup mieux!
    Rodrigue

  9. #9
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut
    J'ai créé un nouveau sujet car mes nouvelles questions n'ont plus grand choses à voir avec le sujet d'origine

    Merci pour vos réponses!
    Rodrigue

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

Discussions similaires

  1. Design pattern Factory et génériques
    Par gege2061 dans le forum C#
    Réponses: 14
    Dernier message: 11/03/2008, 13h09
  2. design pattern factory
    Par olive_le_malin dans le forum C++
    Réponses: 2
    Dernier message: 23/08/2007, 15h31
  3. [Conception]Design Pattern Factory ?
    Par ®om dans le forum Logging
    Réponses: 8
    Dernier message: 13/09/2006, 10h20
  4. [Fabrique] [Java] Design Pattern Factory
    Par SkyBioSS dans le forum Design Patterns
    Réponses: 3
    Dernier message: 24/05/2006, 14h53

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