Útmutató Guava EventBus-jához

1. Áttekintés

Guava könyvtár biztosítja a EventBus amely lehetővé teszi a közzététel és előfizetés közötti kommunikációt az összetevők között. Ebben az oktatóanyagban megvizsgáljuk, hogyan lehet használni a EventBus.

2. Beállítás

Először hozzáadjuk a Google Guava könyvtár függőségét a pom.xml:

 com.google.guava guava 29.0-jre 
A legújabb verzió itt található.

3. A EventBus

Kezdjük egy egyszerű példával.

3.1. Beállít

Kezdjük azzal, hogy megnézzük a EventBus tárgy. Regisztrálni tudja a hallgatókat és közzéteheti az eseményeket. Használata olyan egyszerű, mint az osztály példányosítása:

EventBus eventBus = új EventBus ();

A guava könyvtár lehetővé teszi a EventBus bármilyen módon, amely a legjobban megfelel az Ön fejlesztési igényeinek.

3.2. Hallgatók létrehozása

Létrehozunk egy olyan hallgatói osztályt, amely kezelő módszerekkel rendelkezik bizonyos események fogadására. A kezelő módszereket a @Iratkozz fel. A metódus argumentumként elfogad egy azonos típusú objektumot, mint a feladandó esemény:
public class EventListener {private static int eventsHandled; @Subscribe public void stringEvent (String esemény) {eventsHandled ++; }}

3.3. Hallgatók regisztrálása

Regisztrációval feliratkozhatunk egy eseményre EventListener osztály a EventBus:
EventListener figyelő = new EventListener (); eventBus.register (hallgató);

3.4. A hallgatók regisztrációjának törlése

Ha valamilyen oknál fogva törölni szeretnénk egy osztályt a EventBus, ez szintén könnyen elvégezhető:

eventBus.unregister (hallgató);

3.5. Események közzététele

Eseményeket is közzétehetünk a EventBus:
@Test public void givenStringEvent_whenEventHandled_thenSuccess () {eventBus.post ("String Event"); assertEquals (1, hallgató.getEventsHandled ()); }

3.6. Egyéni események közzététele

Megadhatunk egy egyedi eseményosztályt is, és közzétehetjük az eseményt. Kezdjük egy egyedi esemény létrehozásával:
public class CustomEvent {private String akció; // szokásos mérőeszközök / beállítók és kivitelezők}

Kezelő módszer hozzáadása a EventListener osztály az eseményre:

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

Most közzétehetjük egyedi eseményünket:

@Test public void givenCustomEvent_whenEventHandled_thenSuccess () {CustomEvent customEvent = new CustomEvent ("Egyéni esemény"); eventBus.post (customEvent); assertEquals (1, hallgató.getEventsHandled ()); }

3.7. Kezelése an Leiratkozott Esemény

Nekünk a DeadEvent osztály, amely lehetővé teszi számunkra, hogy olyan eseményeket kezeljünk, amelyeknek nincs hallgatója. Hozzáadhatunk egy módszert a DeadEvent osztály:

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

4. Következtetés

Ebben az oktatóanyagban egy egyszerű példát használtunk útmutatóként a Guava használatára EventBus.

A cikk teljes forráskódját és összes kódrészletét a GitHubon találja meg.


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