Event-Listerner事件監聽模式
事件監聽模式其實就是一種觀察者模式,只是角度有點不同,在Java的JavaBean機制以及GUI中都使用了事件監聽模式。在如今AJAX RIA客戶端中,事件監聽模式也成為一個主要的介面模式。
事件監聽模式分同步和非同步兩種實現方式,JavaBean機制和GUI基本都是同步機制,事件監聽非同步模型,需要引入Event Queue。
事件監聽同步模式分兩個部分:Event Source和Event Listener:
Event Source:被監聽者的事件集合,可能是方法,提供事件的註冊加入和移除功能。類似被觀察者的集合。
Event Listener:事件的監聽者,當事件被觸發,所有監聽這個事件的監聽者將被通知,然後執行自己的Action響應動作。
事件監聽非同步模式在Source和Listener之間引入event queue,
event queue是一個基於事件的publish-subscribe. 它一種松耦合方式提供不同模組和角色之間非同步通訊。它比同步更加松耦合,這樣,我們就把Source-Listener改成了publish-queue-subscribe方式。
事件監聽模式使用在客戶端RIA比較多,因為這裡是使用者輸入的源頭,是事件發生的源頭。而且在目前WOA趨勢下,事件監聽模式不能只單獨侷限於RIA客戶端這個範圍,還需要把事件透過http形式傳遞到伺服器端,也就是跨客戶端和伺服器的,事件必須和伺服器的PUSH非同步結合在一起。這是一種先進的架構設計。
基於Javascript的ZK 5 RIA已經實現了這種先進的事件監聽模式,見:
http://docs.zkoss.org/wiki/ZK_5:_Chat_with_Event_QueueEvent_queues_and_server_push
如果將這種非同步的事件模式和伺服器的OSGI結合,那麼在伺服器端更新一個Jar模組,可以主動通知到客戶端瀏覽器,
這對伺服器端模組管理很有好處。
http://bundle-exception.blogspot.com/2009/07/zk-on-osgi-dynamic-asynchronous.html
相關文章
- 事件監聽事件
- Flutter事件監聽Flutter事件
- jQuery事件監聽jQuery事件
- 監聽滑鼠事件事件
- JavaScript 事件監聽JavaScript事件
- js 監聽事件JS事件
- 事件和事件監聽器事件
- vue之監聽事件Vue事件
- 監聽鍵盤事件事件
- 初識事件監聽事件
- JS事件監聽器JS事件
- deleted事件監聽報錯delete事件
- 如何移除事件監聽器事件
- Laravel 中的事件監聽Laravel事件
- passive 的事件監聽器事件
- 鍵盤監聽事件--向左事件
- java 自定義監聽事件Java事件
- javascript監聽鍵盤事件JavaScript事件
- springboot事件監聽Spring Boot事件
- 監聽所有模型的 saved 事件模型事件
- 如何監聽SAP CRM BOR事件事件
- java 監聽 redis 過期事件JavaRedis事件
- h5 storage事件監聽H5事件
- Spring Boot 事件和監聽Spring Boot事件
- JS的事件監聽機制JS事件
- Banq,請教一下關於非同步事件監聽模式非同步事件模式
- SpringBoot事件監聽機制及觀察者模式/釋出訂閱模式Spring Boot事件模式
- java springboot監聽事件和處理事件JavaSpring Boot事件
- Spring事件釋出與監聽Spring事件
- vue 監聽頁面滾動事件Vue事件
- 透過觀察者監聽模型事件模型事件
- 通過觀察者監聽模型事件模型事件
- Apache ZooKeeper - 事件監聽機制初探Apache事件
- 模型deleted事件監聽報錯解析模型delete事件
- Android.GridView事件監聽AndroidView事件
- Tomcat指定應用事件監聽Tomcat事件
- python設計模式之監聽模式Python設計模式
- 統一監聽所有模型的模型事件模型事件