Java事件驱动模型框架实现

一、框架实现篇 

关键角色

  • 事件源(XXXEvent):能够接收外部事件的源体,内部包含事件的类型。
  • 事件监听器(XXXEventListener):能够接收事件源通知的对象。
  • 事件分发器(EventDispatcher):维护事件类型与事件监听器列表的映射关系,接收事件并进行事件的派发。
  • 事件监听器管理类(EventListenerManager):声明一系列的事件监听器,通过@EventAnnotation定义该事件监听器感兴趣的事件类型,最后通过反射的方式实现事件监听器自动注册到EventDispatcher。

架构图

------------------------------------------------------------------------------------------------------------

话不多说,直接上代码

-------------------------------------------------------------------------------------------------------------

(1)定义事件类型EventType

package com.example.demo.eventdriven;

/**
 * 
* @ClassName: EventType
* @Description: 事件类型
* @Author: liulianglin
* @DateTime 2022年4月21日 下午3:35:56
 */
public enum EventType {
	LOGIN,//登陆事件
	EXIT,//退出事件
	;
}

(2)定义事件基类BaseEvent

package com.example.demo.eventdriven;

/**
 * 
* @ClassName: BaseEvent
* @Description: 基础事件类
* @Author: liulianglin
* @DateTime 2022年4月21日 下午3:34:19
 */
public class BaseEvent {
	//是否在消息主线程同步执行
	private boolean sync = true;
	
	//事件类型
	private final EventType evtType;
	
	public BaseEvent (EventType evtType) {
		this.evtType = evtType;
	}
	
	public BaseEvent (EventType evtType,boolean sync) {
		this.evtType = evtType;
		this.sync = sync;
	}

	public EventType getEvtType() {
		return evtType;
	}
	
	/**
	 * 是否在消息主线程同步执行
	 * @return
	 */
	public boolean isSync() {
		return sync;
	}
	
	public void setSync (boolean sync) {
		this.sync = sync;
	}
}

(3)定义事件监听器接口EventListener

package com.example.demo.eventdriven;

/**
 * 
* @ClassNam
  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
Java事件驱动模型可以理解为一种异步编程机制,其核心在于监听事件并在事件发生时触发相应的处理逻辑。这种模型适用于需要高并发处理的场景,如网络编程、GUI编程等。 在Java中,事件驱动模型通常采用观察者模式实现。观察者模式是指当一个对象发生状态变化时,会通知其他观察者对象,让它们进行相应的处理。在事件驱动模型中,事件源对象会发出事件,观察者对象会监听事件并进行处理。 Java中的事件驱动模型通常包含以下几个组件: 1. 事件源(Event Source):事件源是指触发事件的对象,通常是某个组件或者方法。 2. 事件(Event):事件是指某个状态的变化或者某个动作的完成。事件通常包含事件源对象和事件类型。 3. 监听器(Listener):监听器是指负责监听事件的对象。在Java中,监听器通常实现了某个接口,如ActionListener、MouseListener等。 4. 事件处理器(Event Handler):事件处理器是指负责处理事件的对象。在Java中,事件处理器通常是监听器对象的一个方法,如actionPerformed()、mouseClicked()等。 Java中的事件驱动模型可以应用于多个场景,如GUI编程、网络编程、消息队列等。在实际应用中,需要根据具体的需求和场景,选择合适的事件驱动框架和技术,如Java AWT、Java Swing、Java NIO等。同时,需要注意事件驱动模型的线程安全问题,避免多线程并发访问导致的数据不一致或者死锁等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值