Question

Je suis refactorisation du code pour une mission - actuellement le point de vue a beaucoup de boutons et des menus et un écouteur d'action qui décide ce qu'il faut faire en utilisant event.getSource (). D'après ce que j'ai lu les gens semblent penser son mieux pour chaque composant de GUI pour avoir son propre écouteur d'action, peut-être créé par une sorte d'usine. Cependant, d'autres que le nettoyer un peu le code quels autres avantages cela donne - fait aussi pas dire beaucoup plus d'objets sera sur le tas et pourrait affecter les performances

Merci,

Aly

Était-ce utile?

La solution

Utilisation des écouteurs séparés signifie que vous ne devriez pas avoir besoin d'effectuer des tests booléennes pour déterminer ce qui doit être fait dans votre écouteur. Cela a deux avantages

  • D'abord, il fait exécuter le code à un peu plus vite.

  • Ensuite, elle améliore la maintenabilité et de votre code extendibility. Si vous avez besoin d'ajouter un nouveau composant, vous n'avez pas besoin de modifier les méthodes existantes.

Si vous essayez d'avoir un auditeur (souvent l'applet ou objet application elle-même) d'agir comme auditeur pour plusieurs composants, vous défaisons l'envoi de base qui est au centre d'appeler des méthodes et implémentez expédition à la main. Cela exige que une sorte de mécanisme de commutation utilisé pour distinguer les différents composants dont les événements que vous gérez. Le système est mieux équipé pour le faire que vous. Cette structure de commutateur est à la fois sujette aux erreurs et difficile à maintenir que le programme se développe. Laissez le dispatching au système.

Source: Modèles pour Java Events

Autres conseils

Il est un compromis entre. Code avec un tas de if sur la source est considérée comme laide, alors que les masses d'auditeurs peuvent encombrer votre mémoire et avoir un effet négatif sur la performance.

Étant donné le choix, je vais habituellement pour ce qui réduit la quantité de code que je dois écrire, comme moins de code signifie généralement moins de possibilités pour les bugs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top