Hello,

Je m'interroge sur la 'meilleure' manière de gérer les évènements en Java. Même si ce concept est souvent lié au dev d'IHM (binding vue-model et notification de changement entre les composants) il peut servir dans d'autres circonstances.

Le modèle standard du swing est en gros le suivant:
- des couples event/eventListener spécifique (ActionListener, PropertyChangeListener, WindowListener, ContainerListener, ComponentListener, ...)
- un binding décentralisé: chaque composant manage les écouteurs qu'il peut recevoir et leur envoies des messages si nécessaire

Avez-vous déjà testé des alternatives à ce type de programmation Swing.
Par exemple:
- En ayant des couple event/listener générique (Event<T>, EventListener<T> et un système de callback)

- En utilisant un système centralisé qui permet une couche d'indirection:
les producteurs d'events envoient leurs évènements à une instance centrale.
Les écouteurs s'enregistrent auprès de cette même instance (avec des règles au besoin). Ensuite c'est l'instance qui gère les notification avec des implémentation différentes possibles (delay, timeout, filtrage, ...).
En gros on passe sur un modèle proche d'un système à la JMS.


Si vous avez fait ce genres d'expériences, merci de vos retours sur les effets négatifs ou positifs engendré par ces choix.