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

时间:2022-06-19 00:26:49

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


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

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



基于事件的系统(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);
	}

	@Override
	public 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();

	}
}