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.