一、前言

监听器就是监听事件源是否发生了某一个事件,当发生指定监听的事件时事件源会向已注册的监听器发送消息对象。监听器可以获得事件对象进行相关操作。

二、监听器模型

  • 事件源: 发生事件的对象
  • 消息:触发监听的某一个事件
  • 监听器:监听发生的某个事件进行业务处理

三、案例实现

在开发者进行开发和学习之前进行监听处理业务逻辑。

developerlistener

package demo.listener;

/**
 * 监听器接口
 * 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;

/**
 * 开发者类
 * dingwen
 * 2021/5/30 14:34
 **/
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;

/**
 * 事件对象
 * dingwen
 * 2021/5/30 14:32
 **/
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;

/**
 * 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();
    }
}

到此这篇关于如何实现java监听器详解的文章就介绍到这了,更多相关java监听器内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!