您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關怎么實現一個Java監聽器,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
監聽器就是監聽事件源是否發生了某一個事件,當發生指定監聽的事件時事件源會向已注冊的監聽器發送消息對象。監聽器可以獲得事件對象進行相關操作。
事件源: 發生事件的對象
消息:觸發監聽的某一個事件
監聽器:監聽發生的某個事件進行業務處理
在開發者進行開發和學習之前進行監聽處理業務邏輯。
DeveloperListener
package demo.listener; public interface DeveloperListener { /** * 工作 * * @param event 事件 */ void work(Event event); /** * 研究 * * @param event 事件 */ void study(Event event); }
Developer
package demo.listener; import java.util.Optional; import java.util.function.Supplier; public class Developer { private DeveloperListener developerListener; /** * 注冊監聽器 * * @param developerListener 開發人員監聽器 */ public void registerListener(DeveloperListener developerListener) { this.developerListener = developerListener; } /** * 工作 */ public void work() { if (developerListener != null) { this.developerListener.work(new Event(this)); } System.out.println("developer work"); } /** * 研究 */ public void study(){ if (developerListener != null){ this.developerListener.study(new Event(this)); System.out.println("developer study"); } } }
Event
package demo.listener; public class Event { /** * 開發人員 */ private Developer developer; public Event(Developer developer) { this.developer = developer; } public Event() { } public Developer getDeveloper() { return developer; } public void setDeveloper(Developer developer) { this.developer = developer; } }
DeveloperListenerImpl
package demo.listener; public class DeveloperListenerImpl implements DeveloperListener { @Override public void work(Event event) { Developer developer = event.getDeveloper(); System.out.println("work developer impl listener"); } @Override public void study(Event event) { Developer developer = event.getDeveloper(); System.out.println("study developer impl listener"); } }
package demo.listener; public class ListenerTest { public static void main(String[] args) { Developer developer = new Developer(); developer.registerListener(new DeveloperListenerImpl()); developer.study(); developer.work(); } }
上述就是小編為大家分享的怎么實現一個Java監聽器了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。