Dites que j'ai 4 boutons et je veux que chacun fasse une chose différente. Je ne veux pas d'une grosse déclaration de switch où je fais une chose différente en fonction du bouton qui a été poussé, ni d'une méthode séparée pour chaque clic de bouton. Le patron de commande est-il un bon moyen de résoudre ce problème?Comment utiliser le modèle de commande pour réduire la complexité d'un menu?
Répondre
Oui, c'est une utilisation courante pour le modèle de commande. Imaginez que vous ayez un ensemble de classes (par exemple Open, Save, Print) fournissant chacune une méthode execute(), vous pouvez alors associer une instance de l'une de ces classes à vos boutons et l'événement onclick du bouton peut appeler execute () sans connaître les spécificités de ce que fait la commande associée.
Le Wikipedia article donne d'autres utilisations courantes du modèle de commande.
Oui. J'ai aidé à relier la même Action à un clic de menu et à un clic de barre d'outils. Cela fonctionne plutôt bien. Il ne révolutionne rien, mais vous donne un code beaucoup plus propre et se débarrasse des déclarations de commutateur méchant.
J'ai un code quelque part que je vais essayer de creuser pour vous donner quelques exemples.
- 1. Réduire la complexité du code pour GWT
- 2. Menu de navigation Sharepoint Réduire
- 3. L'utilisation du modèle de spécification réduit-elle vraiment la complexité de votre code?
- 4. comment utiliser le clavier comme commande pour zoomer opengl?
- 5. Comment utiliser la commande POST pour envoyer un fichier?
- 6. Comment utiliser RadioButtons et le modèle MVVM
- 7. Calculer la complexité cyclomatique pour Javascript
- 8. Comment réduire le scintillement dans IE lors de la publication?
- 9. Réduire le format de la page
- 10. WPF Comment utiliser le même modèle
- 11. La complexité d'une fonction
- 12. Comment utiliser le modèle Subsonic MVC?
- 13. Comment utiliser REST pour séparer le modèle, la vue et le contrôle en deux parties
- 14. Comment réduire le pool de connexions DB?
- 15. Comment utiliser une commande linux pour un ensemble de fichiers
- 16. Comment utiliser le modèle de sous-répertoires de QMake?
- 17. pourquoi pas la classe partielle pour construire le ViewModel dans le modèle MVVM?
- 18. Comment réduire le code standard Java?
- 19. Comment utiliser .Net Generics pour hériter d'un paramètre de modèle?
- 20. Réduire le nombre de requêtes dans EF
- 21. Comment utiliser le nouveau modèle IRepository de Subsonic 3.0
- 22. Comment utiliser le marquage DOM littéral comme modèle de prototype?
- 23. Pour les types de référence, comment utiliser IEquatable <T> pour réduire l'utilisation de la fusion?
- 24. Zend Navigation Menu de personnalisation pour utiliser JQuery jdmenu
- 25. Comment maintenir la cohérence entre le modèle et le modèle de vue dans le modèle MVVM?
- 26. Comment réduire l'utilisation de la mémoire de Netbeans?
- 27. Quelques questions sur la complexité
- 28. comment utiliser le reste math dans le modèle django?
- 29. Comment modifier le modèle pour le ValidationSummary
- 30. Outils pour réduire la taille HTML générée
Mais comment faire le mieux l'association - à l'intérieur du bouton (par exemple, avoir une classe spéciale "CommandButton" qui garde une référence à un ICommand ... OU à l'extérieur de la classe dans une sorte de recherche? – Iain