设计模式之监听器模式ListenerPattern(三)

ops/2024/10/11 5:25:01/

一、介绍

监听器模式是一种软件设计模式,在对象的状态发生改变时,允许依赖它的其他对象获得通知。在Java中,可以使用接口和回调机制来实现监听器模式。

二、代码实例

1、事件Event类

package com.xu.demo.listener;// 事件类
public class Event {private String message;public Event(String message) {this.message = message;}public String getMessage() {return message;}
}

2、 事件监听器接口EventListener

package com.xu.demo.listener;public interface EventListener {void onEvent(Event event);
}

 3、自定义监听器MyListener

package com.xu.demo.listener;// 监听器实现
public class MyListener implements EventListener {@Overridepublic void onEvent(Event event) {System.out.println("Event received: " + event.getMessage());}
}

 4、事件管理器EventManager,监听所有的事件

package com.xu.demo.listener;import java.util.ArrayList;
import java.util.List;// 事件管理器,用于注册和触发事件
public class EventManager {private List<EventListener> listeners = new ArrayList<>();public void registerListener(EventListener listener) {listeners.add(listener);}public void triggerEvent(Event event) {for (EventListener listener : listeners) {listener.onEvent(event);}}
}

5、生产事件

package com.xu.demo.listener;public class ListenerPattern {public static void main(String[] args) {EventManager eventManager = new EventManager();EventListener myListener = new MyListener();eventManager.registerListener(myListener);eventManager.triggerEvent(new Event("Hello, World!"));}
}

 运行结果:


http://www.ppmy.cn/ops/25787.html

相关文章

Week1

1. 题目背景 给定一个N*M方格的迷宫&#xff0c;迷宫里有T处障碍&#xff0c;障碍处不可通过。给定起点坐标和终点坐标&#xff0c;问: 每个方格最多经过1次&#xff0c;有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式&#xff0c;每次只能移动一个方格。…

Git命令行操作(本地操作)

入口 1、任意目录》鼠标右键》Open Git Bash here 2、桌面快捷方式 本地库初始化 在本地库项目文件夹执行命令:git init 验证是否执行成功 .git目录中存放的是本地库相关的子目录和文件,不要删除、修改 设置签名 1、形式 用户名:tom Email地址:GoodMorning@qq.com 2、作…

mysql binlog入门

binlog 什么是binlog binlg记录了所有的表结构变更&#xff08;CREATE、ALTER TABLE…&#xff09;以及表数据修改&#xff08;INSERT、UPDATE、DELETE…&#xff09;&#xff0c;以事件形式记录&#xff0c;还包含语句所执行的消耗的时间。 简单的说就是&#xff0c;只要对…

【unity】(1)场景

Unity的场景&#xff08;Scene&#xff09;是构建游戏中各种环境和级别的基础。一个场景可以包含游戏中的所有对象&#xff0c;如角色、道具、地形等。 创建和管理场景 创建新场景&#xff1a; 在Unity编辑器中&#xff0c;选择File > New Scene&#xff0c;或者使用快捷键…

【论文阅读】IPT:Pre-TrainedImageProcessingTransformer

Pre-TrainedImageProcessingTransformer 论文地址摘要1. 简介2.相关作品2.1。图像处理2.2。 Transformer 3. 图像处理3.1. IPT 架构3.2 在 ImageNet 上进行预训练 4. 实验4.1. 超分辨率4.2. Denoising 5. 结论与讨论 论文地址 1、论文地址 2、源码 摘要 随着现代硬件的计算能…

Django模板查找顺序

Django模板查找顺序 首先看django项目的settings.py文件中是否定义DIRS 如果有定义&#xff0c;首先去这个目录下面查找&#xff08;根目录下templates&#xff09;&#xff0c;找到了后续就不找了&#xff1b;如果没有&#xff0c;就顺着app的注册顺序进行查找

嵌入式MCU和SOC的区别?

你大概率并不知晓嵌入式 MCU 与 SOC 之间的区别吧&#xff1f;从表面上来看&#xff0c;MCU 指代的是嵌入式微控制器&#xff0c;而 SOC 则代表着片上系统&#xff0c;这仿佛仅仅是嵌入式系统的不同称谓罢了。然而&#xff0c;在实际的研发以及产品设计过程中&#xff0c;你将会…

Docker——数据管理和网络通信

目录 一、Docker的数据管理 1.数据卷 2.数据卷容器 3.容器互联 二、Docker镜像的创建 1.基于现有镜像创建 2.基于本地模板创建 3.基于Dockerfile 创建 3.1联合文件系统&#xff08;UnionFS&#xff09; 3.2镜像加载原理 3.3为什么Docker里的Centos大小才200M 4.Dcok…