基于事件的系统可以提高系统的灵活性,降低系统的耦合度,辅以并发技术的合理使用,可以提高性能。
基于事件的系统可以用于异构系统之间的业务整合。 基于事件的系统可以实现松耦合条件下,代码和业务逻辑的高度复用,提高系统的弹性。
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();
-
- }
- }
-
|