Sprievodca po EventBus spoločnosti Guava

1. Prehľad

Knižnica Guava poskytuje EventBus čo umožňuje komunikáciu medzi komponentmi publikovať a prihlásiť sa na odber. V tomto výučbe sa pozrieme na to, ako používať niektoré z funkcií EventBus.

2. Inštalácia

Na začiatok pridáme závislosť knižnice Google Guava do pom.xml:

 com.google.guava guava 29.0-jre 
Najnovšiu verziu nájdete tu.

3. Pomocou EventBus

Začnime na jednoduchom príklade.

3.1. Nastaviť

Začíname pohľadom na EventBus objekt. Môže registrovať poslucháčov a zverejňovať udalosti. Jeho použitie je také jednoduché ako vytvorenie inštancie triedy:

EventBus eventBus = nový EventBus ();

Knižnica Guava vám dáva slobodu používať EventBus spôsobom, ktorý najlepšie vyhovuje vašim vývojovým potrebám.

3.2. Vytváranie poslucháčov

Vytvárame triedu poslucháčov, ktorá má metódy obsluhy na príjem konkrétnych udalostí. Metódy obsluhy anotujeme pomocou @ Prihlásiť sa na odber. Metóda prijíma ako argument objekt rovnakého typu ako udalosť, ktorá sa odosiela:
verejná trieda EventListener {private static int eventsHandled; @Subscribe public void stringEvent (reťazcová udalosť) {eventsHandled ++; }}

3.3. Registrácia poslucháčov

Registráciou našich sa môžeme prihlásiť na odber udalosti EventListener trieda na EventBus:
Poslucháč EventListener = nový EventListener (); eventBus.register (poslucháč);

3.4. Ruší sa registrácia poslucháčov

Ak z nejakého dôvodu chceme zrušiť registráciu triedy z triedy EventBus, ktoré je tiež možné ľahko vykonať:

eventBus.unregister (poslucháč);

3.5. Zverejňovanie udalostí

Udalosti môžeme zverejňovať aj prostredníctvom EventBus:
@Test public void givenStringEvent_whenEventHandled_thenSuccess () {eventBus.post ("reťazcová udalosť"); assertEquals (1, listener.getEventsHandled ()); }

3.6. Zverejňovanie vlastných udalostí

Môžeme tiež určiť vlastnú triedu udalosti a zverejniť túto udalosť. Začíname vytvorením vlastnej udalosti:
public class CustomEvent {private String action; // štandardné getre / settery a konštruktory}

Pridanie metódy obsluhy do súboru EventListener trieda pre túto udalosť:

@Subscribe public void someCustomEvent (CustomEvent customEvent) {eventsHandled ++; }

Teraz môžeme zverejniť našu vlastnú udalosť:

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

3.7. Manipulácia s Odhlásené Udalosť

Poskytuje sa nám DeadEvent trieda, ktorá nám umožňuje zvládnuť všetky udalosti, ktoré nemajú poslucháčov. Môžeme pridať metódu na spracovanie súboru DeadEvent trieda:

@Subscribe public void handleDeadEvent (DeadEvent deadEvent) {eventsHandled ++; }

4. Záver

V tomto tutoriáli sme použili jednoduchý príklad ako príručku, ako používať Guavu EventBus.

Kompletný zdrojový kód a všetky útržky kódu pre tento článok nájdete na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found