淺談用java實現(xiàn)事件驅(qū)動機制
來源:易賢網(wǎng) 閱讀:1636 次 日期:2017-09-06 11:17:33
溫馨提示:易賢網(wǎng)小編為您整理了“淺談用java實現(xiàn)事件驅(qū)動機制”,方便廣大網(wǎng)友查閱!

由于項目需求,需要為Java提供一套支持事件驅(qū)動機制的類庫,可以實現(xiàn)類似于C#中的event和delegate機制。眾所周知,Java語言本身以及其標準庫中并沒有提供事件驅(qū)動機制的相關(guān)接口,雖然Swing(我且認為其不屬于標準庫,因為一般沒人用:)中存在相關(guān)的類支持該機制以實現(xiàn)組件的事件處理,但它畢竟是與GUI相耦合的,而在其它類型的應用程序中使用起來顯得就有些別扭,缺乏通用性。因此有必要實現(xiàn)一套通用的Java事件驅(qū)動機制類庫,然后將其應用于通用的Java應用程序當中,雖然這并不是什么難事:)

讓我們先考察一下C#的事件驅(qū)動機制編寫方法。C#中提供的event關(guān)鍵字可以很容易的用來定義一個事件,然后通過向事件中添加事件處理函數(shù)(在C#中一般用委托(delegate)來引用一個函數(shù)),觸發(fā)事件就可以調(diào)用相關(guān)的處理函數(shù),也即是事件驅(qū)動的過程。例如:

名單

上面的代碼就是用C#實現(xiàn)的事件驅(qū)動機制的一個簡單的例子,可見是非常簡單的,這都源于C#在語言層面(其實是CLR)提供的便利。遺憾的是Java并不提供這樣的便利,需要人為去實現(xiàn)。下面本文將提供兩種實現(xiàn)事件驅(qū)動機制的方法,僅供參考。

觀察者模式

觀察者模式是一種常用的設(shè)計模式,觀察者(Observer)先通過訂閱被觀察對象(Subject),這樣一旦被觀察者(Subject)發(fā)生某種變化,就會將變化通知觀察者(Observer)。

這種設(shè)計模式剛好可以用于事件驅(qū)動機制,事件(event)相當于被觀察對象(Subject),一旦事件被觸發(fā),就會調(diào)用事件處理函數(shù),可見事件處理函數(shù)(C#中的委托)可以看作是觀察者。因此可以像如下這樣實現(xiàn)上文中的功能。

淺談用java實現(xiàn)事件驅(qū)動機制

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機網(wǎng)站地址:淺談用java實現(xiàn)事件驅(qū)動機制

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)