分享

基于事件的系统(Event-

 WindySky 2018-03-06

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


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

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









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

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

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

事例代码:

  1.    
  2. package org.teamlet.notifies;  
  3.   
  4. import org.teamlet.base.AbstractEventNotifier;  
  5. import org.teamlet.event.UserLoginEvent;  
  6.   
  7. public class LoginEventNotifier extends AbstractEventNotifier {  
  8.   
  9.     public void fire() {  
  10.         UserLoginEvent event = new UserLoginEvent(this);  
  11.         fireAEvent(event);  
  12.     }  
  13.   
  14. }  
  15.     

  1.    
  2. package org.teamlet.listener;  
  3.   
  4. import java.util.EventObject;  
  5.   
  6. import org.teamlet.base.AbstractEventListener;  
  7. import org.teamlet.event.UserLoginEvent;  
  8.   
  9. public class LoginEventListener extends AbstractEventListener {  
  10.   
  11.     public void registe() {  
  12.         this.registe(this);  
  13.     }  
  14.   
  15.     public void unRegiste() {  
  16.         this.unRegiste(this);  
  17.     }  
  18.   
  19.     @Override  
  20.     public void performed(EventObject e) {  
  21.         if (e instanceof UserLoginEvent) {  
  22.             System.out.println("*** UserLoginEvent is performed ! ");  
  23.         }  
  24.     }  
  25.   
  26. }  
  27.   
  28.     

  1.        
  2. package org.teamlet;  
  3.   
  4. import org.teamlet.listener.LoginEventListener;  
  5. import org.teamlet.notifies.LoginEventNotifier;  
  6.   
  7. public class Main {  
  8.   
  9.     public static void main(String[] args) {  
  10.   
  11.         new LoginEventListener().registe();  
  12.         LoginEventNotifier lep = new LoginEventNotifier();  
  13.         lep.fire();  
  14.   
  15.     }  
  16. }  
  17.      


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约