2010-11-24 29 views
1

Je ne suis pas un programmeur GUI solide, donc j'essaie de comprendre différentes architectures d'événements. Je développe un système (dans GWT, mais je ne suis pas sûr que cela compte) où nous présentons quelques événements personnalisés. En général, est-ce une bonne pratique de créer un événement et de faire en sorte que l'événement se propage au bus d'événements? Suite à quelques articles et tutoriels en ligne, nous avons notre code de contrôleur qui déclenche les événements, mais chaque contrôleur doit dupliquer le code pour déclencher l'événement personnalisé. Il semble que si vous venez de mettre une méthode fire() sur l'événement lui-même, vous pouvez éviter cette duplication.Les événements doivent-ils se déclencher eux-mêmes?

Quels sont les avantages/inconvénients de le faire?

Répondre

1

Pour qu'un événement se déclenche automatiquement, vous devez injecter l'instance EventBus dans l'événement lorsque vous le créez. Cela signifie que votre contrôleur (celui newing l'événement) aurait:

new MyEvent(m_eventBus).fire(); 

Si vous retouchez le code comme ceci:

MyEvent event = new MyEvent(); 
m_eventBus.fireEvent(event); 

alors vous pas à mettre toute logique ou les références à services dans votre instance d'événement, où ce n'est pas vraiment nécessaire. Si vous utilisez GWT, la classe HandlerManager implémente déjà un bus d'événements pour vous.