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

È stato utile?

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 impostarlo true 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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top