@MrXiao
2018-03-26T16:21:31.000000Z
字数 1200
阅读 862
NM3000
传统的顺序程序设计总是按照流程来安排所有的工作,而事件机制的特点在于:等待,有事情发生则处理。这样的好处是避免了顺序程序设计在没有工作时的空循环处理,释放了各种资源。
Java事件处理采用观察者模式,即发布-订阅模式。关于该设计模式,请参照观察者模式。
regs:监听者接口引用map集合
map的key是监听者接口的class对象,value是该接口下的实现类对象。
eventQueue:消息对象队列
阻塞队列中存放的是EmsEventObject对象,所以继承自该对象的消息对象都可以存放到队列中。
executorService:java线程池
采用生产者-消费者模式,多线程处理消息队列。
addListener:监听者类初始化时,调用该方法,将自己添加到messageService的监听者集合中。
fireMessage:立即将消息传递给对应的监听者,即立即执行
重点:封装消息对象,设置监听该消息的接口和响应方法。
使用反射,从消息对象中获得响应方法,invoke执行,即将消息传递给指定接口的监听者。
一般在service层使用消息。
在需要发送消息的地方,构建消息对象,设置监听接口及方法,调用messageService发送消息。
addMessage:将消息添加到消息缓冲队列,延迟执行
fireMessage:立即执行