事件觀察者的應(yīng)用
事件觀察者又可以叫事件委托、訂閱模式,目的是為了解偶,定義了一種一對(duì)多的關(guān)系,當(dāng)事件變化時(shí)通知與此事件依賴(lài)的對(duì)象,并做出相應(yīng)的處理。應(yīng)用時(shí)非常廣的,我在做游戲中時(shí)必定用到的,是最最基礎(chǔ)的模塊,數(shù)據(jù)更新、玩家動(dòng)作觸發(fā)、幀頻刷新、服務(wù)器消息響應(yīng)、界面與邏輯分離、狀態(tài)變遷等等。我在理解觀察者模式的基礎(chǔ)上作出了一些改動(dòng),使用起來(lái)會(huì)更方便與快捷。
事件觀察者
首先,事件觀察者監(jiān)聽(tīng)事件,然后當(dāng)收到事件觸發(fā)時(shí),調(diào)用事件響應(yīng)函數(shù),完成一次事件的變遷。
那么,事件觀察者內(nèi)部會(huì)存在一個(gè)事件列表來(lái)維護(hù)事件綁定,即為 eventMap ,其中key是唯一值是事件ID,通過(guò)區(qū)分事件ID來(lái)劃分事件監(jiān)聽(tīng)函數(shù)。
一個(gè)事件ID對(duì)應(yīng)多個(gè)響應(yīng)事件
事件ID不可重復(fù)
同一個(gè)事件ID的事件響應(yīng)函數(shù)不可重復(fù)。