首發於enaium的個人部落格
eventbus,什麼是eventbus。
eventbus是事件發布-訂閱匯流排,簡單來說監聽乙個事件,乙個方法訂閱這個事件,如果事件呼叫,那麼訂閱了這個事件的方法也會跟著呼叫,這就是eventbus。
建立乙個註解,用於訂閱事件,名字可以隨便起,當然也可以叫subscribe,我這裡叫event。
建立listener***。@target
(elementtype.method)
@retention
(retentionpolicy.runtime)
public @inte***ce
event
建立methodbean類,來儲存訂閱方法,object是訂閱類的物件,method就是被訂閱的方法。public
class
listener
建立乙個eventmanager,來管理訂閱的事件。public
class
methodbean
public object getobject()
public method getmethod()
}
建立乙個hashmap合集k是***,v是被呼叫的方法,因為乙個***可能有多個方法,並且要保證執行緒安全,需要使用copyonwritearraylist。public
class
eventmanager
建立register和unregister方法來註冊和取消註冊訂閱的物件。public
class
eventmanager
註冊。public
class
eventmanager
public
void
unregister
(object o)
}
取消註冊很簡單,只要將events的k和v移除就行。public
void
register
(object o)
}else}}
}
建立乙個getevent方法來獲取乙個***的所有訂閱。public
void
unregister
(object o)
建立乙個單例。public copyonwritearraylist
getevent
(class<
?extends
listener
> type)
回到剛才建立的listener類。public
enum main
建立乙個call方法來進行事件觸發操作,當事件觸發,獲取***的所有訂閱方法來呼叫,引數就是當前的***。
建立乙個***。public
class
listener
methodbeans.
foreach
(event -
>
catch
(illegalacces***ception
| invocationtargetexception e)})
;}}
乙個簡單的eventbus已經寫好了,現在來測試一下。public
class
updateevent
extends
listener
原始碼public
enum main
static
class
test
}}
python寫乙個服務 Python寫乙個服務
coding utf 8 import json from urllib.parse import parse qs from wsgiref.server import make server 定義函式,引數是函式的兩個引數,都是python本身定義的,預設就行了。定義檔案請求的型別和當前請求成功...
寫乙個東東
最近打了幾天的三國無雙6,感覺不錯!很久很久以前,乙個小學同學帶了我到機室玩三國無雙。自此,我便喜歡上了這個遊戲。現在我玩的遊戲內有兩個 三國無雙和cs。ps 曾經有些怪我的這個好朋友帶我打遊戲,但現在想來,若不是他,我的童年又怎麼會有歡樂呢。人活著,快樂是最重要的.因為以前是用專用手柄打的,感覺非...
寫乙個網頁
1 建立站點資料夾,站點資料夾的名字可以是中文 2 在站點資料夾下面建立子資料夾和子檔案 css js images html,前三個都是資料夾形式 子資料夾和子檔案的名字不能是中文 2.重置所有預設的樣式和設定一些全域性樣式,並將設定樣式的css檔案和對應的頁面關聯起來 3.劃分區域 如果的寬度大...