当前位置: 首页 > ds >正文

基于接口的事件机制

基于JDK17

功能梗概

  1. 简洁:监听方只需实现接口
  2. 直观:发布方直接调用接口方法
  3. 方便读:能直接看到当前事件监听方位置
  4. 类型安全:编译时检查
  5. 静态调用:EventManager.getEvent() 静态方法
  6. 高效:线程安全的事件对象缓存

逻辑思想

1. 事件

只需要定义一个事件接口继承EventInterface就可以了,例如

/*** 用户登录事件接口*/
public interface IUserLoginEvent extends EventInterface {/*** 用户登录事件* @param userId 用户ID*/void onUserLogin(Long userId);
}
2. 监听方

对于监听方来讲,不需要关注事件对象,只要实现事件接口就可以了。
例如在 LoginService 中

public Class LoginService implements ILoginEvent {@Overridepublic void onLogin(Long userId) {// 当事件触发的时候,会调用这个方法}
}
3. 发布方

关于发布方来讲,就像正常调用方法一样就可以

public void main(String[] args) {ILoginEvent event = EventManager.getEvent(ILoginEvent.class);event.onLogin(userId);
}

构造方式

EventManager eventManager = new EventManager();
Map<String, Object> eventBeans = applicationContext.getBeansWithAnnotation(MessageService.class);
eventManager.init(eventBeans);

代码实现

https://download.csdn.net/download/qq_38746380/91888336

http://www.xdnf.cn/news/20542.html

相关文章:

  • python入门常用知识
  • Phthon3 学习记录-0707
  • 积分球的使用——简易版
  • 强化学习入门:从零开始实现DDQN
  • Ai8051 2.4寸320*240 ILI9341 I8080接口驱动
  • 人工智能学习:基于seq2seq模型架构实现翻译
  • 项目初始化上传git
  • Qemu-NUC980(四):SDRAM Interface Controller
  • 什么是“二合一矫平机”?——一篇技术科普
  • 主流的开源协议(MIT,Apache,GPL v2/v3)
  • Qt编程之信号与槽
  • 吴恩达机器学习(八)
  • make时设置链接器选项的2种方法
  • 【操作系统-Day 25】死锁 (Deadlock):揭秘多线程编程的“终极杀手”
  • Zoom AI 技术架构研究:联合式方法与多模态集成
  • 【LeetCode热题100道笔记】翻转二叉树
  • python炒股
  • C++ 20 新增特性以及代码示例
  • 同态加密库(Google FHE)
  • 神经网络的初始化:权重与偏置的数学策略
  • C# WinForm分页控件实现与使用详解
  • B.50.10.09-RPC核心原理与电商应用
  • MATLAB R2025a安装配置及使用教程(超详细保姆级教程)
  • 什么是云手机?
  • Vue3 - Echarts自定义主题引入(Error:ECharts is not Loaded,Error:default ,Error:module)
  • 攻击服务器的方式有哪些,对应的应对策略有哪些?
  • 联邦学习论文分享:Towards Building the Federated GPT:Federated Instruction Tuning
  • Leetcode hot100 最长连续序列
  • rh134第五章复习总结
  • SDRAM详细分析-08 数据手册解读