Spring

 

My App

(Capa de negocio)

 

HTTP Req

MixIns

JsonComponent

Callbacks

EntityListener

Emisor

Eventos

Evento A

Evento B

Evento C

Listener

Listener

0: subscribe

(evento concreto C)

Listener

subscribe

(evento B)

1: new

Listener

2: accept(event)
3: //do something
public class EmisorEventos {

  // 0: subscripcion
  void addListener(Listener listener) {...}
  
  void foo() {
    ...
    if (happensEventC) {
      Event event = new EventC(bar); // 1
      for (Listener l : getListeners()) {
        if (l.listenFor(event)) { // filtro
          l.accept(event); // 2
        }
      }
    }
    ...
  }

}

Listener

Listener