Quelques astuces moins connues pour implémenter une structure MVC faiblement couplée dans une application de bureau non triviale (par exemple ayant au moins deux niveaux de vues/contrôleurs et plus de un modèle)? Déclarer les gestionnaires d'événements dans vos interfaces (important pour les vues).Trucs/astuces pour l'architecture de MVC dans une application de bureau non triviale
Répondre
Utiliser des interfaces.
Beaucoup. J'aime utiliser le style "IDoThisForYou" (même dans un langage où ce n'est pas idiomatique) car une interface représente un rôle qu'une autre classe peut utiliser.
Faire les contrôleurs chargés de contrôler l'interaction
Les contrôleurs contrôlent l'interaction entre les objets de domaine, services, etc.
utiliser des événements pour transmettre des informations entre les contrôleurs
Que chaque contrôleur qui a besoin d'informations pour s'inscrire à l'événement. Utilisez une interface.
Ne pas mettre des informations de présentation sur les objets de votre domaine
Au lieu de cela, permettre au contrôleur de créer un modèle de présentateur ou de la vue qui a les informations dont vous avez besoin. Cela ne comprend pas "ToString()". Si vous êtes dans une langue sans héritage multiple, vous pourriez vous retrouver avec un peu de duplication entre les présentateurs. C'est OK - la duplication est meilleure que le couplage, et l'interface utilisateur change beaucoup de toute façon.
Ne mettez pas la logique dans votre IUG
Au lieu de cela, le contrôleur permet de créer une mdoel de présentateur ou de la vue qui a les informations dont vous avez besoin. Cela inclut les épaves de train comme "MyAnimal.Species.Name" - le rendre "SpeciesName" à la place.
Testez
manuellement. Il n'y a pas de substitut. Les tests d'unité et d'acceptation vont un long chemin, mais il n'y a rien de tel que de lancer l'application et d'utiliser le désordre que vous avez écrit pour découvrir à quel point c'est compliqué. Ne le transmettez pas aux QA sans y aller vous-même.
Oh, et ne moquez pas les objets de domaine dans les tests unitaires. Ça ne vaut pas le coup. Utilisez un constructeur.
De cette façon, vous pouvez coupler de manière lâche la gestion des événements qui est gérée par le contrôleur. Vous devrez peut-être utiliser InvokeRequired lorsque vous travaillez avec la vue si votre application est multithread.
- 1. Windows pour une application triviale?
- 2. Fuite non gérée dans une application WPF triviale
- 3. App pour documenter le flux de travail pour une application non triviale
- 4. stockage Configuration pour une application de bureau
- 5. Interface utilisateur pour une application de bureau
- 6. BIRT dans une application de bureau
- 7. Comment écrire une application de bureau correctement?
- 8. Un moyen facile de déployer une application MVC sur une machine de bureau?
- 9. Comment créer un module pour une application de bureau?
- 10. Webserver pour une application de bureau - considération de conception
- 11. application de bureau mutualisées
- 12. application de bureau java
- 13. Comment distribuer une application de bureau Java?
- 14. Application de partage de bureau dans Flex?
- 15. Application mono de bureau et framework MVC/MVP
- 16. Quel objet gère la commutation de vues dans une application MVC de bureau?
- 17. Des idées pour une application de bureau Windows
- 18. Render les contrôles ASP.NET dans une application de bureau?
- 19. Jdesktop ou Qt pour une meilleure application de bureau
- 20. Comment intégrer Flash dans une application de bureau dans .NET?
- 21. Définition d'un délai d'attente dans une application de bureau .net
- 22. paramètres Alternate (scope utilisateur) dans une application de bureau C#
- 23. comment développer une application de bureau actif dans C#
- 24. Application de bureau auto-complète
- 25. Session par ViewModel dans une application de bureau avec référentiel
- 26. Traitement de visage d'image triviale
- 27. Ajouter du texte dans une application de bureau
- 28. Signature d'une application de bureau
- 29. Utilisation de Javascript dans une application MVC
- 30. Utilisation de WebParts dans une application MVC
Quel langage, cadre et/ou environnement de développement utilisez-vous? –