Aurais-je raison de penser que le 'Modèle' représenté par le M dans MVP pourrait être un modèle de domaine ou un modèle de présentation/vue?Modèles en mode Présentateur MVP
Répondre
Oui, le modèle pourrait être essentiellement n'importe quel modèle. La façon dont je le vois, l'intention originale de MVC était qu'il s'agit d'un objet de domaine, et c'est certainement encore possible.
Cependant, mon expérience a montré qu'un meilleur ajustement est atteint si nous introduisons un modèle ViewModel/Presentation spécialisé comme isolant entre le modèle de domaine et la vue.
Même lorsque le ViewModel semble être sémantiquement identique à l'objet de domaine, une telle isolation nous permet de faire varier les deux indépendamment et donc de suivre les Single Responsibility Principle.
Il s'avère souvent que la vue nécessite une certaine logique qui s'applique à la technologie d'interface utilisateur spécifique, et cette logique s'adapte mal dans le modèle de domaine. Les exemples incluent
- Logique qui détermine si un contrôle particulier doit être activé ou désactivé. Les modèles de domaine ne devraient rien savoir des contrôles.
- Logique qui mappe un état sur une couleur. Les couleurs sont spécifiques à la technologie: ce sont des types CLR différents sur Windows Forms, WPF et ASP.NET.
- Validation. Les formulaires d'entrée permettent normalement l'entrée de données invalides sans lancer d'exceptions. Au lieu de cela, ils fournissent des commentaires à l'utilisateur que les données sont invalides. D'un autre côté, les objets de domaine devraient protéger leurs invariants, et ainsi lancer des entrées invalides.
Plus d'informations peuvent être trouvées ici
Merci pour cette excellente explication. Mon intention était de faire en sorte que les contrôleurs questionnent le domaine et qu'un assistant (une sorte de mappeur/assembleur) construise un modèle de vue spécifique à la présentation, conviendriez-vous que cette approche est correcte? – David
Oui, cliquez sur le modèle de domaine pour récupérer ce dont vous avez besoin, utilisez un mappeur pour mapper le ViewModel et restaurez la vue à l'aide de ce ViewModel. C'est essentiellement ce que je fais aussi. –
Merci encore Mark. J'ai d'autres questions sur ce sujet que je vais poser et j'apprécierais votre contribution. – David
- 1. Présentateur MVP et événements
- 2. Modèle MVP, combien de vues à un présentateur?
- 3. mvc et modèles de conception de mvp
- 4. en utilisant les modèles MVC MVP dans winforms
- 5. MVP Flow question
- 6. MVP - Combien de présentateurs
- 7. Etat de session avec des modèles MVP et Contrôleur d'application
- 8. Modèle ASP.NET Voir Présentateur structure du projet
- 9. Modèle MVP avec tabbedMDI
- 10. Comment dois-je exposer les données hiérarchiques d'un contrôle TreeView à un présentateur MVP?
- 11. GWT avec MVP: ajoutez plusieurs fois le même présentateur à un conteneur
- 12. MVP Connexion des triades
- 13. Le test d'unité pour le présentateur Web Forms MVP a une valeur nulle. Modèle
- 14. Quelles fonctionnalités peuvent être mises dans le présentateur pour le modèle MVP Design?
- 15. asp.net modèle mvp. comment déplacer facilement les données de la vue dans le présentateur
- 16. MVP - Contrôleur Superviseur
- 17. MVP: communication Presenter-Model
- 18. StackLayoutPanel et MVP
- 19. MVP - Injection de dépendances et le modèle
- 20. Même présentateur travaillant avec différents référentiels
- 21. Modèle - Vue - Présentateur avec Virtual Grid
- 22. Implémentation de la mise en page à l'aide de MVP
- 23. GUI Design Pattern, MVP, Tabulation
- 24. Où stocker l'état dans une architecture MVP
- 25. Question de l'interface du présentateur de modèle?
- 26. Refactoring Form.ShowDialog() code à MVP
- 27. Comment implémenter MVP dans une application console?
- 28. ASP.NET MVP - Utilisation des contrôles utilisateur
- 29. Présentation du modèle Présentateur et vues composites
- 30. C# WinForms, architecture MVP
Voulez-vous dire MVC? –
@Jan Je veux dire MVP. Y at-il quelque chose qui ne va pas avec ma question? Peut-être un peu de compréhension. – David