Question

J'ai écrit un projet MVP dans lequel la vue est un WinForm qui implémente mon interface IView. Je suis en train de réviser le code, de l'améliorer là où je peux et voudrais vous demander votre avis sur la manière dont le point de vue et le présentateur interagissent. Selon vous, quelle est la meilleure pratique?

  1. Exposer les méthodes de la classe de présentateur pour la vue à utiliser. (c'est-à-dire les rendre publics).
  2. Demandez au présentateur d'écouter les événements générés par la classe View.

Par exemple, mon MVP utilise un service qui communique via un port série. Pour me connecter au périphérique distant, my view appelle la méthode publique Presenter Connect (), qui appelle ensuite les méthodes de service appropriées.

Serait-il préférable de créer un événement Connect () et de le laisser écouter par le présentateur?

Était-ce utile?

La solution

En général, je travaille de sorte que la vue dépende du présentateur et que le présentateur dépend du modèle. Cela signifie que le même modèle peut être utilisé par plusieurs présentateurs et que le même présentateur peut être utilisé avec plusieurs vues (différentes dispositions d'interface utilisateur, Winforms ou Web, etc.). Pour faciliter cela, la vue appelle des méthodes publiques sur le présentateur et écoute les événements de ce dernier pour indiquer le moment où les données ont changé.

Pour un exemple de la raison pour laquelle vous souhaitez travailler de cette manière, imaginez une interface comportant deux vues, une pour un utilisateur débutant et une autre pour un expert, la vue débutant montrant un sous-ensemble des commandes expert. Si le même présentateur est utilisé pour ces deux vues, la vue pour débutant devra exposer les événements de toutes les commandes expert, car le présentateur a besoin qu'ils soient là pour qu'il puisse s'y lier, même s'ils ne seront jamais déclenchés. D'autre part, le présentateur peut exposer des méthodes pour toutes les options expert et la vue de débutant ne les appelle jamais, ce qui signifie que ni la vue ni le présentateur n'implémentent des fonctionnalités inutilisées.

Autres conseils

La ligne directrice que je suivrais ici est la suivante: "Les méthodes publiques dans le présentateur doivent être sans paramètre. L'objet de vue ne doit accéder qu'aux méthodes de présentateur sans paramètre. Une autre option est la vue peut définir des événements auxquels le présentateur peut s’abonner. Dans les deux cas, aucun paramètre ne doit passer. & Quot; . Ouvert aux questions et commentaires.

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