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 :

Conception : accéder à un modèle à partir de plusieurs endroits


Sujet :

C#

  1. #1
    Membre confirmé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Points : 528
    Points
    528
    Par défaut Conception : accéder à un modèle à partir de plusieurs endroits
    Bonjour,

    Je suis dans la phase de conception d'une application WinForms et j'aimerais vous demander conseils sur deux points.

    Au centre de l'interface, j'ai un userControl Viewer qui affiche une image (background) et des cercles. La position de ces cercles est liée à un "model" (calculs de données, ...).

    1) Je créé mon "model" à l'intérieur de Viewer.cs.
    En termes de conception, le modèle est lié à la vue par composition.
    Je fais alors appel aux méthodes du modèle dans Viewer.cs lorsque j'ai besoin d'information pour afficher mes cercles (Evénement OnClick par exemple).

    Je ne sais pas si lier son modèle à la vue par composition est une bonne façon de faire. Je peux éventuellement utiliser un patron de conception MVP pour passer le modèle par composition au presenter... Qu'en pensez-vous ?

    2) Les calculs du modèle ont besoin d'être connu à plusieurs endroits de l'interface (dans Viewer mais dans Params aussi).

    De la même façon que pour Viewer, je passe pour l'instant par composition le modèle (créé initialement dans Viewer.cs mais récupéré via un accesseur pour le passer au constructeur de Params..).

    Savez-vous comment je peux optimiser ma conception pour pouvoir accéder à des méthodes de calcul de mon modèle à plusieurs endroits de mon interface ?

    Merci beaucoup
    Images attachées Images attachées  

  2. #2
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Bonjour,
    effectivement, je sortirais le modèle de la vue, en lui appliquant le design pattern singleton si l'instanciation est unique.

  3. #3
    Membre confirmé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Points : 528
    Points
    528
    Par défaut
    Merci dkmix pour ta suggestion

    J'ai pensé à cette possibilité mais ce qui me dérange avec le singleton, c'est de rendre un modèle avec calculs de données visible à toute l'application alors que seulement certaines parties en ont besoin.

    Peut être que je chipote mais y a-t-il un moyen d'éviter cela ?

  4. #4
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Instancier ton modele dans ta WinForm et le passer par référence aux User Controls (via leurs constructeurs par exemple) ?

  5. #5
    Membre confirmé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Points : 528
    Points
    528
    Par défaut
    C'est l'architecture que j'ai mis en place actuellement (enfin presque, puisque le modèle est créé depuis le constructeur de mon Viewer et non depuis la MainWindow).

    Il faudrait juste que je passe le modèle au constructeur puis au presenter (architecture MVP pour manipuler le modèle dans le presenter et non la vue non?).

    En attendant une meilleure solution, c'est ce que j'ai retenu :s

    Si tu as d'autres idées n'hésites pas

  6. #6
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    jouer avec InotifyPropertyChanged (appliqué à ton modèle)...

  7. #7
    Membre confirmé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Points : 528
    Points
    528
    Par défaut
    Effectivement, c'est encore une possibilité mais ça risque d'être un peu lourd à appliquer à mon modèle sachant en plus que je ne maîtrise pas encore la bonne implémentation de ce concept.

    Entre les trois possibilités sinon, tu aurais tendance à utiliser laquelle et pourquoi?

    La première qui consiste à passer le modèle en singleton est tentant car c'est le plus simple mais ça m'embête vraiment de le laisser visible à ce point.

Discussions similaires

  1. Conception modèle en étoile: plusieurs tables de faits?
    Par Edna24 dans le forum Conception/Modélisation
    Réponses: 2
    Dernier message: 19/05/2009, 12h15
  2. Réponses: 2
    Dernier message: 07/08/2006, 20h27
  3. Réponses: 17
    Dernier message: 03/06/2006, 03h29
  4. [SUM] récuperer une quantite a partir de plusieurs table
    Par Snowballz dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 14/09/2004, 18h48
  5. [retro-conception] Passage au modèle de données
    Par liliboc dans le forum Outils
    Réponses: 5
    Dernier message: 09/07/2004, 11h01

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