מדריך ל- EventBus של גויאבה

1. סקירה כללית

ספריית גויאבה מספקת את EventBus המאפשר תקשורת פרסום-מנויים בין רכיבים. במדריך זה, נבחן כיצד להשתמש בחלק מהתכונות של ה- EventBus.

2. התקנה

כדי להתחיל, אנו מוסיפים את תלות ספריית גוגל גויאבה ב- pom.xml:

 com.google.guava גויאבה 29.0-jre 
הגרסה האחרונה תוכל למצוא כאן.

3. באמצעות EventBus

נתחיל באמצעות דוגמה פשוטה.

3.1. להכין

אנו מתחילים להסתכל על EventBus לְהִתְנַגֵד. זה יכול לרשום מאזינים ולפרסם אירועים. השימוש בו פשוט כמו התקנת הכיתה:

EventBus eventBus = EventBus חדש ();

ספריית גויאבה מעניקה לך את החופש להשתמש ב- EventBus בכל דרך המתאימה ביותר לצרכי הפיתוח שלך.

3.2. יצירת מאזינים

אנו יוצרים כיתת מאזינים עם שיטות מטפלות לקבלת אירועים ספציפיים. אנו מציינים את שיטות המטפל באמצעות @ מנוי. השיטה מקבלת כארגומנט אובייקט מאותו סוג כמו האירוע שמתפרסם:
Class Class EventListener {אירועים פרטיים סטטיים פרטייםHandled; @ הירשם כמנוי חלל ציבורי ריק Event (אירוע מחרוזת) {eventsHandled ++; }}

3.3. רושמים מאזינים

אנו יכולים להירשם לאירוע על ידי רישום שלנו EventListener בכיתה על EventBus:
מאזין EventListener = EventListener חדש (); eventBus.register (מאזין);

3.4. ביטול רישום המאזינים

אם מסיבה כלשהי אנו רוצים לבטל רישום מהשיעור EventBus, שניתן לעשות זאת גם בקלות:

eventBus.unregister (מאזין);

3.5. פרסום אירועים

אנחנו יכולים לפרסם אירועים גם עם EventBus:
@ מבחן בטל פומבי givenStringEvent_whenEventHandled_thenSuccess () {eventBus.post ("אירוע מחרוזת"); assertEquals (1, listener.getEventsHandled ()); }

3.6. פרסום אירועים בהתאמה אישית

אנו יכולים גם לציין מחלקת אירועים מותאמת אישית ולפרסם אירוע זה. אנו מתחילים ביצירת אירוע מותאם אישית:
מחלקה ציבורית CustomEvent {פעולת מחרוזת פרטית; // סטנדרטים / סטרים ובונים סטנדרטיים}

הוספת שיטת מטפל ב- EventListener שיעור לאירוע זה:

@ הירשם כמנוי לציבור בטל חלק someCustomEvent (CustomEvent customEvent) {eventsHandled ++; }

כעת אנו יכולים לפרסם את האירוע המותאם אישית שלנו:

@Test הציבור בטל givenCustomEvent_whenEventHandled_thenSuccess () {CustomEvent customEvent = חדש CustomEvent ("אירוע מותאם אישית"); eventBus.post (customEvent); assertEquals (1, listener.getEventsHandled ()); }

3.7. טיפול ב- לא מנויים מִקרֶה

אנו מספקים א DeadEvent שיעור המאפשר לנו להתמודד עם אירועים שאין להם מאזינים. אנו יכולים להוסיף שיטה לטיפול ב- DeadEvent מעמד:

@ הירשם כמנוי חלל ציבורי handleDeadEvent (DeadEvent deadEvent) {eventsHandled ++; }

4. מסקנה

במדריך זה השתמשנו בדוגמה פשוטה כמדריך כיצד להשתמש בגויאבה EventBus.

תוכל למצוא את קוד המקור השלם ואת כל קטעי הקוד עבור מאמר זה ב- GitHub.


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