Model-View-Presenter
En MVP, le Présentateur contient l'INTERFACE utilisateur de la logique métier pour la Vue. Toutes les invocations de la Vue déléguer directement à l'intention du Présentateur. Le Présentateur est également découplé directement à partir de la Vue et des entretiens à travers une interface. C'est pour permettre de se moquant de la Vue dans un test unitaire. Un attribut commun de MVP est qu'il y a beaucoup de deux voies de distribution. Par exemple, lorsque quelqu'un clique sur le bouton "Enregistrer", le gestionnaire d'événement délégués pour le Présentateur de "OnSave" la méthode. Une fois que la sauvegarde est terminée, le Présentateur va ensuite revenir à l'Affichage par le biais de son interface, de sorte que la Vue peut afficher que la sauvegarde est terminée.
MVP a tendance à être un moyen très naturel de modèle pour la réalisation d'une présentation séparée dans les Formulaires Web. La raison en est que la Vue est toujours d'abord créé par le ASP.NET moment de l'exécution. Vous pouvez en savoir plus sur les deux variantes.
Deux principales variations
Passive Vue: Le point de Vue est aussi stupide que possible et ne contient presque zéro logique. Le Présentateur est un homme du milieu qui parle à la Vue et le Modèle. La Vue et le Modèle sont complètement à l'abri de l'un à l'autre. Le Modèle peut déclencher des événements, mais le Présentateur s'abonne à eux pour la mise à jour de la Vue. Passive Vue il n'y a pas de liaison directe de données, au lieu de la Vue expose setter propriétés qui le Présentateur utilise pour définir les données. Tout état est géré dans le Présentateur et non de la Vue.
- Pro: maximum de testabilité de surface; nettoyer la séparation du Modèle et de la Vue
- Con: plus de travail (par exemple tous les setter propriétés) comme vous le faites tous de la liaison de données vous-même.
La supervision du Contrôleur: Le Présentateur poignées utilisateur gestes. La Vue se lie au Modèle directement via la liaison de données. Dans ce cas, il est le Présentateur de passer le Modèle de la Vue, de sorte qu'il peut se lier à elle. Le Présentateur va aussi contenir la logique pour des gestes comme appuyer sur un bouton, la navigation, etc.
- Pro: en tirant parti de la liaison de données la quantité de code est réduite.
- Con: il y a moins de testables surface (à cause de la liaison de données), et il y a moins d'encapsulation dans la Vue, car il parle directement le Modèle.
Modèle-Vue-Contrôleur
Dans le MVC, le Contrôleur est responsable de la détermination de la Vue qui est affiché en réponse à toute action, y compris lors du chargement de l'application. Cela diffère de MVP où les actions de l'itinéraire à travers le point de Vue de l'animateur. Dans MVC, chaque action dans la Vue en corrélation avec un appel à un Contrôleur avec une action. Dans le web chaque action implique un appel à une URL, de l'autre côté de laquelle il y a un Contrôleur qui répond. Une fois que le Contrôleur a terminé son traitement, il sera de retour la Vue correcte. La séquence se poursuit de cette manière tout au long de la vie de l'application:
Action dans la Vue
-> Appel à un Contrôleur
-> Contrôleur De Logique
-> Contrôleur retourne la Vue.
Une autre grande différence sur MVC est que l'avis ne lie pas directement sur le Modèle. Le point de vue simplement rend, et est complètement apatrides. Dans les implémentations de la MVC le point de Vue habituellement n'aura pas de logique dans le code derrière. Cela est contraire à la MVP où il est absolument nécessaire que si la Vue n'est pas délégué à l'animateur, il ne sera jamais appelé.
Modèle De Présentation
Un autre motif à regarder est la Présentation du Modèle le modèle. Dans ce modèle il n'y a pas de Présentateur. Au lieu de cela, la Vue se lie directement à un Modèle de Présentation. Le Modèle de Présentation est un Modèle conçu spécifiquement pour la Vue. Cela signifie que ce Modèle peut exposer les propriétés que l'on n'aurait jamais mis sur un modèle de domaine que ce serait une violation de la séparation des préoccupations. Dans ce cas, le Modèle de Présentation lie pour le modèle de domaine, et peut s'abonner aux événements à venir à partir de ce Modèle. La Vue, puis s'abonne aux événements à venir à partir de la Présentation du Modèle et des mises à jour en conséquence. Le Modèle de Présentation peuvent exposer les commandes dont la vue utilise pour invoquer des actions. L'avantage de cette approche est que vous pouvez supprimer le code-behind tout à fait comme les PM complètement encapsule tous les comportements de la vue. Ce modèle est un très bon candidat pour une utilisation dans des applications WPF et est également appelé" Model-View-ViewModel.
Il y a un article MSDN sur le Modèle de Présentation et une section dans le Composite guide d'Application en WPF (ancien Prisme) à propos d'une Présentation Séparée des Modèles