最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何實(shí)現(xiàn)Java監(jiān)聽器詳解

 更新時(shí)間:2021年06月01日 16:14:37   作者:dingwen_blog  
今天帶大家了解Java監(jiān)聽器是如何實(shí)現(xiàn)的及實(shí)現(xiàn)原理是什么,文中有非常詳細(xì)的說明,對正在學(xué)習(xí)的小伙伴們很有幫助,需要的朋友可以參考下

一、前言

監(jiān)聽器就是監(jiān)聽事件源是否發(fā)生了某一個(gè)事件,當(dāng)發(fā)生指定監(jiān)聽的事件時(shí)事件源會(huì)向已注冊的監(jiān)聽器發(fā)送消息對象。監(jiān)聽器可以獲得事件對象進(jìn)行相關(guān)操作。

二、監(jiān)聽器模型

  • 事件源: 發(fā)生事件的對象
  • 消息:觸發(fā)監(jiān)聽的某一個(gè)事件
  • 監(jiān)聽器:監(jiān)聽發(fā)生的某個(gè)事件進(jìn)行業(yè)務(wù)處理

在這里插入圖片描述

三、案例實(shí)現(xiàn)

在開發(fā)者進(jìn)行開發(fā)和學(xué)習(xí)之前進(jìn)行監(jiān)聽處理業(yè)務(wù)邏輯。

DeveloperListener

package demo.listener;

/**
 * 監(jiān)聽器接口
 * dingwen
 * 2021/5/30 14:35
 **/
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;

/**
 * 開發(fā)者類
 * dingwen
 * 2021/5/30 14:34
 **/
public class Developer {
    private DeveloperListener developerListener;


    /**
     * 注冊監(jiān)聽器
     *
     * @param developerListener 開發(fā)人員監(jiān)聽器
     */
    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;

/**
 * 事件對象
 * dingwen
 * 2021/5/30 14:32
 **/
public class Event {
    /**
     * 開發(fā)人員
     */
    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;

/**
 * developer listener impl
 * dingwen
 * 2021/5/30 14:38
 **/
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;

/**
 * 測試
 * dingwen
 * 2021/5/30 14:57
 **/
public class ListenerTest {
    public static void main(String[] args) {
        Developer developer = new Developer();
        developer.registerListener(new DeveloperListenerImpl());
        developer.study();
        developer.work();
    }
}

到此這篇關(guān)于如何實(shí)現(xiàn)Java監(jiān)聽器詳解的文章就介紹到這了,更多相關(guān)Java監(jiān)聽器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

台中县| 班玛县| 长宁区| 綦江县| 黄梅县| 溧水县| 手机| 江华| 宁陕县| 黄石市| 鸡西市| 丹寨县| 钟祥市| 普兰县| 华安县| 永寿县| 论坛| 咸丰县| 崇文区| 万源市| 轮台县| 胶南市| 马龙县| 泾源县| 阜宁县| 东兰县| 昌宁县| 姚安县| 中宁县| 陇南市| 吴江市| 盱眙县| 灌云县| 三河市| 聊城市| 万载县| 安龙县| 黄冈市| 胶州市| 长春市| 漾濞|