一種Handle結構

2021-09-01 21:48:54 字數 654 閱讀 8844

最近看到了這樣一篇部落格,感覺寫的很好。尤其是它其中敘述的這種基於事件的模型。

我也是照貓畫虎的寫了個示例程式,不知道對不對我斗膽描述一下這個結構:

1.定義乙個介面,定義需要提供的服務。

2.定義乙個抽象類(或者普通的類)實現上述介面,實現介面的所有服務,實現內容都為空的。

3.接下來,使用者可以根據自己的需要通過繼承以上的類來重寫介面的服務,實現自己想要的服務。想寫多少寫多少,想寫幾個寫幾個。這個屬於使用者自定義的handle。

4.最後一步,需要乙個觸發器。觸發器內部維護乙個list以保持那些使用者新增進來的自定義handle。這個觸發器採用單例模式,通過提供addlistener方法向list中新增handle。最後再提供對應於1中介面的所有服務的的觸發呼叫函式,大概像這樣:

public void fireservice1(){

for(int i=0;i大功告成,神奇的效果出來了:

當使用者自定義了幾個handle後,通過addlistener方法註冊後,在執行fireservicex的時候,雖然他是將list中的所有handle的servicex都執行了一遍,但實際上由於handle重寫的服務不同,若handle1沒有重寫servicex,則會執行其父類的

servicex,但是其父類的

servicex是空的,也就什麼都不執行了。

每一種創傷,都是一種成熟

6.如果你準備結婚的話,告訴你一句非常重要的哲學名言 你一定要忍耐包容對方的缺點,世界上沒有絕對幸福圓滿的婚姻,幸福只是來自於無限的容忍與互相尊重。7.我的財富並不是因為我擁有很多,而是我要求的很少。8.不是某人使我煩惱,而是我拿某人的言行來煩惱自己。9.活在別人的掌聲中,是禁不起考驗的人。10.如...

每一種創傷,都是一種成熟

1.活著一天,就是有福氣,url 就該珍惜 url 當我哭泣我沒有鞋子穿的時候,我發現有人卻沒有腳。2.寧可自己去原諒別人,莫讓別人來原諒你。3.世界原本就不是屬於你,因此你用不著拋棄,要拋棄的是一切的執著。萬物皆為我所用,但非我所屬。4.別人可以違背因果,別人可以害我們,打我們,毀謗我們。可是我們...

快樂是一種品位,一種氣質。

這兩天很不爽,2月初,應該是寒冷的,可是杭州現在最高溫度達到了24度,確切的說今天的氣溫是13 24度,大太陽。暖和了,卻惶恐了。如果沒了季節之分,冬不冬,春不春,夏不夏,秋不秋,將多麼可怕。開啟qq氣象台,發現北方很冷,就杭州一帶很古怪。突然羨慕北方的人,享受著冬天。我覺得我都該裸奔了,熱啊!去年...