- L'invio di ogni evento ad ogni oggetto può diventare particolarmente oneroso, dato
che sia gli eventi che gli oggetti sono tanti
- Per ovviare a questo inconveniente si adottano due strategie:
- Ogni evento gestito va abilitato. Se un certo evento non è abilitato, il sistema
non ce lo invierà, risparmiando tempo
- È possibile implementare dei "listener"
- Una classe che vuole gestire un determinato evento si dichiara listener per quell'evento
(tramite un'interfaccia, che vedremo in una prossima lezione)
- La classe listener si registra presso la classe che le dovrebbe inviare i messaggi
(tramite la superclasse si registrerà nel sistema)
- Il sistema invia gli eventi solo alle classi registrate come listener
In questo modo, oltre a limitare il numero delle classi che ricevono gli eventi, si evita anche una
lista piuttosto lunga di chiamate nidificate
|