Ú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.