基于事件的系统(Event-based System)的原型

时间:2022-02-08 20:57:47

基于事件的系统可以提高系统的灵活性,降低系统的耦合度,辅以并发技术的合理使用,可以提高性能。


基于事件的系统可以用于异构系统之间的业务整合。

基于事件的系统可以实现松耦合条件下,代码和业务逻辑的高度复用,提高系统的弹性。



基于事件的系统(Event-based System)的原型



基于事件的系统(Event-based System)的原型



LoginEventNotifier和LoginEventListener 无需知道注册服务和对方的存在,只需要做自己的事情。

Notifier在产生通知的时候发送通知即可。

Listener在接到通知处理通知即可。在使用时,可以根据需要注册和注销listener。

事例代码:

 package org.teamlet.notifies;

import org.teamlet.base.AbstractEventNotifier;
import org.teamlet.event.UserLoginEvent;

public class LoginEventNotifier extends AbstractEventNotifier {

public void fire() {
UserLoginEvent event = new UserLoginEvent(this);
fireAEvent(event);
}

}

 package org.teamlet.listener;import java.util.EventObject;import org.teamlet.base.AbstractEventListener;import org.teamlet.event.UserLoginEvent;public class LoginEventListener extends AbstractEventListener {public void registe() {this.registe(this);}public void unRegiste() {this.unRegiste(this);}@Overridepublic void performed(EventObject e) {if (e instanceof UserLoginEvent) {System.out.println("*** UserLoginEvent is performed ! ");}}}  

     package org.teamlet;import org.teamlet.listener.LoginEventListener;import org.teamlet.notifies.LoginEventNotifier;public class Main {public static void main(String[] args) {new LoginEventListener().registe();LoginEventNotifier lep = new LoginEventNotifier();lep.fire();}}