Question

Quelle est la meilleure répartition des responsabilités lors de l’utilisation d’une grille virtuelle et du modèle MVP dans une application winforms.

incluant:

  1. Obtention de rappels de la grille sur les mises à jour de cellules modifiées par l'utilisateur
  2. Rappel de la grille pour définir le style et la valeur d'une cellule à partir d'une ligne et d'une colonne
Était-ce utile?

La solution

Les responsabilités exactes dans les nombreux modèles dénommés Model-View-Presenter varient. Ils varient principalement quant au degré de contrôle exercé sur la vue par le présentateur. Martin Fowler discute en profondeur de différentes variantes dans son chapitre consacré aux Architectures d'interface graphique , ça vaut la peine d'être lu.

Consultez Presenter First , qui traite des adaptateurs et des responsabilités correspondantes. un peu de profondeur.

Les deux vue passive et Le contrôleur de supervision vaut la peine d’être examiné.

modèle (ou modèle de domaine) == représentation logique des entités impliquées dans le système, y compris leur état et leur comportement

présentateur == écoutez les événements de la vue (et peut-être du modèle) et répondez à ces demandes, convertissez les types de modèle en types de vue (vue passive), il s’agit en réalité de dissimuler la vue et le modèle l’un de l’autre. Réagit au stimulus de l'utilisateur.

view == presentation: représentation visuelle du modèle avec lequel l'utilisateur peut interagir, collecte des entrées utilisateur

Vos questions spécifiques relatives aux rappels et à l’obtention du style de cellule de la grille impliqueront la gestion des événements de la vue depuis la grille et le renvoi des événements au présentateur pour demander des actions ou récupérer des données du modèle. C'est parfait pour le rappel lorsque le contenu de la cellule est mis à jour (ceci doit être publié pour le présentateur afin que celui-ci puisse valider la modification dans le modèle et le modifier dans le modèle).
Pour le style de cellule de grille, je pense qu’une sorte d’adaptateur dans la vue peut nécessiter de traduire l’état du modèle (récupéré via un événement de la vue vers le présentateur) en informations de style de cellule de grille. Cela pourrait arriver dans le présentateur, mais je préférerais personnellement que le présentateur ne connaisse pas le widget dans la vue.

Autres conseils

Si je vous ai bien compris, la grille fait partie de la mise en oeuvre de la vue et n'est pas visible par le présentateur. Dans ce cas, le présentateur ne devrait pas avoir besoin de savoir comment les données sont affichées, mais comment les fournir.

Je créerais probablement une classe d'assistance, un adaptateur quelconque avec lequel la grille communique. La grille ne voit rien d'autre que cette aide, idem pour la vue.

La collaboration serait quelque chose comme:

grid < - helper < - view < - > présentateur

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top