天天看點

用原生javascript實作最簡單的釋出者-訂閱者模式

http://www.cnblogs.com/surahe/p/6065778.html

 釋出—訂閱模式可以廣泛應用于異步程式設計中,這是一種替代傳遞回調函數的方案。比如,我們可以訂閱 ajax 請求的 error 、 succ 等事件。 或者如果想在動畫的每一幀完成之後做一些事情,那我們可以訂閱一個事件,然後在動畫的每一幀完成之後釋出這個事件。在異步程式設計中使用釋出—訂閱模式,我們就無需過多關注對象在異步運作期間的内部狀态,而隻需要訂閱感興趣的事件發生點。

  釋出—訂閱模式可以取代對象之間寫死的通知機制,一個對象不用再顯式地調用另外一個對象的某個接口。釋出—訂閱模式讓兩個對象松耦合地聯系在一起,雖然不太清楚彼此的細節,但這不影響它們之間互相通信。當有新的訂閱者出現時,釋出者的代碼不需要任何修改;同樣釋出者需要改變時,也不會影響到之前的訂閱者。隻要之前約定的事件名沒有變化,就可以自由地改變它們。

用原生javascript實作最簡單的釋出者-訂閱者模式

繼續閱讀