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

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

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

一、前言

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

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

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

在這里插入圖片描述

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

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

DeveloperListener

package demo.listener;

/**
 * 監(jiān)聽(tīng)器接口
 * 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;

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


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

/**
 * 事件對(duì)象
 * dingwen
 * 2021/5/30 14:32
 **/
public class Event {
    /**
     * 開(kāi)發(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");

    }
}

四、測(cè)試

package demo.listener;

/**
 * 測(cè)試
 * 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)聽(tīng)器詳解的文章就介紹到這了,更多相關(guān)Java監(jiān)聽(tīng)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

永嘉县| 依兰县| 沅陵县| 万全县| 龙游县| 克东县| 利津县| 南漳县| 襄樊市| 神农架林区| 珲春市| 绥棱县| 前郭尔| 东明县| 黄石市| 基隆市| 宁远县| 乌恰县| 岱山县| 丰顺县| 花莲县| 资中县| 怀来县| 泰和县| 大邑县| 永和县| 高青县| 万全县| 密山市| 平山县| 邢台县| 五家渠市| 肇东市| 农安县| 灵武市| 霍林郭勒市| 永善县| 和田县| 开原市| 无极县| 论坛|