Guide til Guavas EventBus

1. Oversigt

Guava bibliotek tilbyder EventBus som tillader publicering-abonnementskommunikation mellem komponenter. I denne vejledning vil vi se på, hvordan du bruger nogle af funktionerne i EventBus.

2. Opsætning

Til at begynde med tilføjer vi Google Guava-biblioteksafhængigheden i pom.xml:

 com.google.guava guava 29.0-jre 
Den seneste version kan findes her.

3. Brug af EventBus

Lad os starte med at bruge et simpelt eksempel.

3.1. Opsætning

Vi starter med at se på EventBus objekt. Det kan registrere lyttere og sende begivenheder. Brug af det er så simpelt som at starte klassen:

EventBus eventBus = ny EventBus ();

Guava-biblioteket giver dig friheden til at bruge EventBus på enhver måde, der bedst passer til dine udviklingsbehov.

3.2. Oprettelse af lyttere

Vi opretter en lytterklasse, der har håndteringsmetoder til at modtage specifikke begivenheder. Vi kommenterer behandlingsmetoderne med @Tilmeld. Metoden accepterer som et argument et objekt af samme type som den begivenhed, der sendes:
public class EventListener {private static int eventsHandled; @Tilmeld offentlig ugyldig strengEvent (strengbegivenhed) {eventsHandled ++; }}

3.3. Registrering af lyttere

Vi kan abonnere på et arrangement ved at registrere vores EventListener klasse på EventBus:
EventListener-lytter = ny EventListener (); eventBus.register (lytter);

3.4. Afregistrering af lyttere

Hvis vi af en eller anden grund ønsker at afmelde en klasse fra EventBus, der også let kan gøres:

eventBus.unregister (lytter);

3.5. Bogføring af begivenheder

Vi kan også sende begivenheder med EventBus:
@Test offentlig ugyldighed givenStringEvent_whenEventHandled_thenSuccess () {eventBus.post ("String Event"); assertEquals (1, listener.getEventsHandled ()); }

3.6. Udstationering af brugerdefinerede begivenheder

Vi kan også angive en brugerdefineret begivenhedsklasse og sende den begivenhed. Vi starter med at oprette en brugerdefineret begivenhed:
offentlig klasse CustomEvent {privat strenghandling; // standard getters / settere og konstruktører}

Tilføjelse af en behandlingsmetode i EventListener klasse til den begivenhed:

@Tilmeld offentligt ugyldigt someCustomEvent (CustomEvent customEvent) {eventsHandled ++; }

Vi kan nu sende vores brugerdefinerede begivenhed:

@Test offentlig ugyldighed givenCustomEvent_whenEventHandled_thenSuccess () {CustomEvent customEvent = new CustomEvent ("Custom Event"); eventBus.post (customEvent); assertEquals (1, listener.getEventsHandled ()); }

3.7. Håndtering af en Afmeldt Begivenhed

Vi er forsynet med en DeadEvent klasse, der giver os mulighed for at håndtere begivenheder, der ikke har nogen lyttere. Vi kan tilføje en metode til håndtering af DeadEvent klasse:

@Tilmeld offentligt ugyldigt handleDeadEvent (DeadEvent deadEvent) {eventsHandled ++; }

4. Konklusion

I denne vejledning brugte vi et simpelt eksempel som en guide til, hvordan man bruger Guava EventBus.

Du kan finde den komplette kildekode og alle kodestykker til denne artikel på GitHub.