J'ai été une fois chargé de créer un contrôle utilisateur personnalisé C#. C'est un contrôle avec un tas de sections pliables. Le contrôle sur lequel l'utilisateur peut cliquer pour basculer entre l'état de réduction/d'expansion est un contrôle d'étiquette. Il y a un contrôle d'image juste à côté qui change d'état pour indiquer si la section particulière est réduite ou agrandie. Quelque part dans le contrôle, j'ai besoin d'une fonction pour retourner l'état d'une section particulière. La question est la suivante: la fonction doit-elle retourner l'état en fonction de l'état du contrôle d'image ou doit-on introduire une variable supplémentaire qui stocke l'état, avec le risque supplémentaire d'être désynchronisé avec l'état actuel?Pragmatisme ou pureté - Devrions-nous compter sur le cadre GUI pour stocker l'état du programme?
Répondre
La plupart du temps, lorsque les gens vont avec une solution «pure» à des problèmes comme ceux-ci, ils cachent simplement le couplage, sans le retirer. Le couplage représente généralement la complexité essentielle du problème qu'ils tentent de résoudre. Comme il ne peut pas être retiré, il peut aussi bien être mis en œuvre de manière directe.
Votre cas ne fait pas exception. Sauf si vous pensez qu'il y a une chance décente que le getter de l'état du contrôle de l'image change dans le futur (pas si vous utilisez un framework stable), en utilisant une variable supplémentaire qui est toujours supposée avoir la même valeur que celle du contrôleur d'image l'état remplace simplement le couplage explicite avec un couplage implicite légèrement caché. Cela ne vous apporte rien et augmente la complexité et donc le potentiel de bug.
La redondance est inutile. Je dis juste lire l'état de l'image, si cela peut être considéré comme empirique.
- 1. premier programme dans un nouveau cadre GUI
- 2. gui pour le programme mpi
- 3. Collection de cadre pour compter un fichier
- 4. Stratégie de journalisation pour le programme GUI
- 5. Cadre pour GUI au-dessus de Powershell?
- 6. en utilisant les boutons dans le cadre de gui netbeans
- 7. Cadre de test GUI automatisé pour Android
- 8. NHibernate: le meilleur moment pour stocker les modifications GUI
- 9. Cadre de création Java GUI
- 10. Stocker du texte GUI en tant que ResourceBundle (aucune localisation)?
- 11. MFC GUI dans le cadre principal et d'autres DLL qui nedd aussi GUI
- 12. cadre pour définir le corps SMS par programme dans l'iphone
- 13. Stocker des fichiers sur le Cloud ou le FileSystem?
- 14. NSCoding ne semble pas stocker le cadre de mon UIImageView
- 15. L'exécution du programme ne se termine pas après avoir cliqué sur le bouton de fermeture python (en utilisant wxpython-GUI)
- 16. Exécution du programme Python sur le Web
- 17. git-gui: Déplacer le focus du clavier sur "fichiers modifiés"
- 18. Comment organiser le code GUI (pour PyQt)?
- 19. Graphviz ou Dynagraph pour le programme de manipulation de graphes?
- 20. Win32 GUI scintillant sur le redimensionnement
- 21. Pouvez-vous compter sur le navigateur pour flv/swf datastore?
- 22. Cadre graphique pour le redimensionnement automatique
- 23. Cadre ou CMS?
- 24. Ajout de commandes GUI au programme externe
- 25. Compte cliquez sur le bouton ou un lien et stocker dans cookie
- 26. Java StackTrace Editor ou GUI
- 27. L'emplacement correct du fichier pour stocker un plist sur l'appareil
- 28. Mise à jour du matlab timer pour mettre à jour le GUIDE gui de matlab?
- 29. Compter et limiter le nombre d'utilisateurs sur mon application
- 30. Outil ou cadre pour le test du pilote de périphérique Linux?