CDI - è il chiamante notificato quando un osservatore osserva un evento?
-
27-09-2019 - |
Domanda
Sto usando CDI e voglio sapere come il chiamante viene notificato che l'osservatore ha osservato un evento o non ha fatto. Se non osserva atto su quell'evento, poi ho voglia di fare qualcosa. Non vedo questo essere documentato da nessuna parte nella documentazione diverso c'era un suggerimento che il chiamante viene avvisato.
Grazie,
Walter
Soluzione
Non credo che il chiamante viene notificato (che non è quello che il pattern Observer è circa in realtà). Ma si può provare a lavorare in questo giro da:
-
è possibile avere un campo uno l'oggetto evento -
private boolean consumed
e impostarlotrue
se viene consumato. Poi, (gli eventi vengono gestiti in modo sincrono) nel evento di controllo del produttore che variabile. -
sparare un nuovo evento da osservatori che si osserva dal produttore di eventi
-
Se si vuole far cadere il beneficio del loose coupling, e si sa esattamente quale il produttore evento è è, si può
@Inject
in tutti gli ascoltatori, e lasciarli invocare un metodo su di esso