由于項目需求,需要為Java提供一套支持事件驅(qū)動機制的類庫,可以實現(xiàn)類似于C#中的event和delegate機制。眾所周知,Java語言本身以及其標準庫中并沒有提供事件驅(qū)動機制的相關(guān)接口,雖然Swing(我且認為其不屬于標準庫,因為一般沒人用:)中存在相關(guān)的類支持該機制以實現(xiàn)組件的事件處理,但它畢竟是與GUI相耦合的,而在其它類型的應(yīng)用程序中使用起來顯得就有些別扭,缺乏通用性。因此有必要實現(xiàn)一套通用的Java事件驅(qū)動機制類庫,然后將其應(yīng)用于通用的Java應(yīng)用程序當(dāng)中,雖然這并不是什么難事:)
讓我們先考察一下C#的事件驅(qū)動機制編寫方法。C#中提供的event關(guān)鍵字可以很容易的用來定義一個事件,然后通過向事件中添加事件處理函數(shù)(在C#中一般用委托(delegate)來引用一個函數(shù)),觸發(fā)事件就可以調(diào)用相關(guān)的處理函數(shù),也即是事件驅(qū)動的過程。例如:
//定義事件和對應(yīng)的委托 public event MyDelegate Click; public delegate void MyDelegate(); //定義委托 void OnClick(){ console.writeline("you just clicked me!"); } //將委托與事件關(guān)聯(lián) Click += OnClick; //觸發(fā)事件 Click();
名稱欄目:淺談用java實現(xiàn)事件驅(qū)動機制-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://chinadenli.net/article40/deeoeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、標簽優(yōu)化、軟件開發(fā)、域名注冊、網(wǎng)站制作、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容