首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >监听器模式

监听器模式

作者头像
晚上没宵夜
发布于 2020-03-10 02:52:11
发布于 2020-03-10 02:52:11
98800
代码可运行
举报
运行总次数:0
代码可运行

1. 监听器模式(Listener Pattern)

监听器模式用来监听某个对象发生的事件,当此对象发生被监听的事件后,监听器的某个方法将被执行,其主要组成有: 事件源事件监听器事件对象

2. 流程

监听器模式很简单,直接看代码就能理解,这里举例监听小狗的玩和学习事件

2.1 事件对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Event {

    // 存放事件源的引用
    Object object;

    public Event(Object object) {
        super();
        this.object = object;
    }

    public Object getObject() {
        return object;
    }
    
}

2.2 事件监听器

狗的监听器接口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public interface DogListener {
    
    public void playListener(Event event);
    
    public void studyListener(Event event);

}

狗监听器的实现类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package listenerpatten;

public class MyDogListener implements DogListener {

    @Override
    public void playListener(Event event) {
        System.out.println("监听器:监听到" +  event.getObject().getClass().getName() + "在玩");
    }

    @Override
    public void studyListener(Event event) {
        System.out.println("监听器:监听到" +  event.getObject().getClass().getName() + "在学习");
    }

}

2.3 事件源

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Dog {
    
    private MyDogListener myDogListener;
    public void setDogListener(MyDogListener myDogListener) {
        this.myDogListener = myDogListener;
    }

    public void play(){
        System.out.println("Dog: i am playing");
        Event event = new Event(this);
        myDogListener.playListener(event);
    }

    public void study(){
        System.out.println("Dog: i am studying");
        Event event = new Event(this);
        myDogListener.studyListener(event);
    }
}

2.4 测试类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class test {
    
    public static void main(String[] args) {
        
        Dog dog = new Dog();
        MyDogListener myDogListener = new MyDogListener();
        dog.setDogListener(myDogListener);
        
        dog.play();
        dog.study();
        
    }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Dog: i am playing
监听器:监听到listenerpatten.Dog在玩
Dog: i am studying
监听器:监听到listenerpatten.Dog在学习
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-02-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
监听器第一篇【基本概念、Servlet各个监听器】
什么是监听器 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。。 为什么我们要使用监听
Java3y
2018/03/15
9980
监听器第一篇【基本概念、Servlet各个监听器】
扒去Spring事件监听机制的外衣,竟然是观察者模式
Spring中提供了一套默认的事件监听机制,在容器初始化时便使用了这套机制。同时,Spring也提供了事件监听机制的接口扩展能力,开发者基于此可快速实现自定义的事件监听功能。
程序新视界
2022/11/23
6540
扒去Spring事件监听机制的外衣,竟然是观察者模式
Servlet规范中的监听器-Listener
在介绍监听器之前,先跟同学们普及一个知识,观察者设计模式。因为所有的监听器都是观察者设计模式的体现。
楠羽
2022/11/18
6850
Servlet规范中的监听器-Listener
JavaWeb-监听器Listener解析与实例
监听器-就是一个实现待定接口的普通Java程序,此程序专门用于监听另外一个类的方法调用。 这是使用观察者模式的。
谙忆
2021/01/21
6660
JavaWeb-监听器Listener解析与实例
Spring学习笔记(4)Spring 事件原理及其应用
事件类也就是定义发送的内容,比如可以通过继承ApplicationContextEvent来自定义一个特定事件类。
归思君
2023/10/16
3720
Spring学习笔记(4)Spring 事件原理及其应用
Spring Boot 监听器详解
通过前面的几篇文章,我们都能看到SpringApplicationRunListener,SpringApplicationRunListener 是SpringApplication 的运行监听器,提供Spring Boot启动时各个运行状态的监听,可以在应用程序启动的时候执行一些自定义操作或记录一些信息。SpringApplicationRunListener 在run中加载SpringApplicationRunListeners listeners = getRunListeners(args);。 ApplicationListener是Spring 提供的上下文监听器,可用于监听指定感兴趣的事件。
阿提说说
2023/10/16
8340
Spring Boot 监听器详解
探索Spring事件监听机制的奇妙世界
Spring事件监听机制是一种在Spring应用程序中处理事件和消息的机制。它基于观察者模式,允许定义事件源、事件监听器和事件对象,以便在特定事件发生时执行自定义逻辑。
索码理
2023/11/08
3490
Web-第十七天 监听器Listener【悟空教程】
当我们使用QQ时,在生日当天会收到QQ系统发送的祝福邮件。今天我们将实现相同的功能。
Java帮帮
2018/07/27
8270
Web-第十七天 监听器Listener【悟空教程】
[享学Netflix] 二、Apache Commons Configuration事件监听机制及使用ReloadingStrategy实现热更新
代码下载地址:https://github.com/f641385712/netflix-learning
YourBatman
2020/02/21
1.6K0
[享学Netflix] 二、Apache Commons Configuration事件监听机制及使用ReloadingStrategy实现热更新
Spring | 事件监听器应用与最佳实践
在复杂的软件开发环境中,组件之间的通信和信息交流显得尤为重要。Spring框架,作为Java世界中最受欢迎的开发框架之一,提供了一种强大的事件监听器模型,使得组件间的通信变得更加灵活和解耦。本文主要探讨Spring事件监听器的原理、使用方法及其在实际开发中的应用,希望为广大开发者提供实用的参考。
kfaino
2023/09/25
2.4K0
Spring | 事件监听器应用与最佳实践
Servlet监听器和过滤器的快速使用和配置(基于注解配置)
过滤器是一种设计模式,主要用来封装Servlet中一些通用的代码。在web.xml中配置哪些URL对应哪些过滤器。
静谧星空TEL
2021/04/27
6660
Servlet监听器和过滤器的快速使用和配置(基于注解配置)
监听器模式和观察者模式的关系,写点你不知道的
无论大家在实践中是否自己实现过观察者模式或监听器模式,但肯定间接使用过。比如Spring的事件机制,大多数人肯定都用过,只是没留意而已。
程序新视界
2021/12/07
6720
监听器模式和观察者模式的关系,写点你不知道的
面试了个30岁的程序员,让我莫名其妙的开始慌了
我:使用事件的模式可以对系统进行解耦,事件源发布一个事件,事件监听器可以消费这个事件,而事件源不用关注发布的事件有哪些监听器,这可以可以对系统进行解耦
马士兵的朋友圈
2020/07/31
9820
面试了个30岁的程序员,让我莫名其妙的开始慌了
Spring拓展知识:后置处理器与事件监听器
我们想要用框架,实现越来越多的功能的时候,往往要填加很多很多的bean组件,在使用的时候就可以直接去使用ioc容器中的类,
冷环渊
2022/09/29
3830
Spring拓展知识:后置处理器与事件监听器
Spring高手之路7——事件机制与监听器的全面探索
观察者模式是一种行为设计模式,它定义了对象之间的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。在这个模式中,改变状态的对象被称为主题,依赖的对象被称为观察者。
砖业洋__
2023/07/06
1.9K0
Spring高手之路7——事件机制与监听器的全面探索
事件监听机制
相信大家都学过Java中的GUI,不知道你们对GUI中的事件机制有没有产生过好奇心,当我们点击按钮时,就可以触发对应的点击事件,这一过程究竟是如何实现的呢?本篇文章我们就来聊一聊Java中的事件监听机制。
wangweijun
2022/06/02
8.6K0
事件监听机制
Spring之事件监听(观察者模型)
  本文介绍下Spring中的事件监听,其本质也就是观察者模型(发布/订阅模式),具体的观察者模式参考下文
用户4919348
2019/04/02
9470
Spring之事件监听(观察者模型)
JavaWeb(六)Listener监听器
监听器 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。 Servlet监听器 在Servlet规范中定义了多种类型的监听器,它们用于监听的事件源分别为 ServletContext, HttpSession 和 ServletRequest 这三个域对象。 Servlet规范针对这三个对象上的操作,又把这多种类型的监听器划分为三种类型。 监听三个域对象创建和销毁的事件监听器 监听域对象中属性的
二十三年蝉
2018/02/28
2.2K0
JavaWeb(六)Listener监听器
Spring高手之路26——全方位掌握事务监听器
Spring事务监听器是一种机制,允许我们在事务的不同阶段(如提交、回滚、开始)执行自定义逻辑。通过事务监听器,我们可以在事务的生命周期中插入一些额外的操作,比如记录日志、发送通知、更新缓存等。
砖业洋__
2024/12/20
5491
Spring高手之路26——全方位掌握事务监听器
spring5.x-监听器原理及源码实现
Spring框架的事件机制允许对象在特定的事件发生时进行监听和响应。Spring监听器的原理主要涉及以下几个核心概念:
逍遥壮士
2023/09/01
3140
spring5.x-监听器原理及源码实现
推荐阅读
相关推荐
监听器第一篇【基本概念、Servlet各个监听器】
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档