轉(zhuǎn):https://juejin.im/entry/580b5553570c350068e6c2d6
什么是觀察者模式?
觀察者模式又叫做發(fā)訂閱模式,它定義了一種一對多的關(guān)系潮罪,讓多個(gè)觀察者對象同時(shí)監(jiān)聽某一個(gè)主題對象挚躯,這個(gè)主題對象的狀態(tài)發(fā)生改變時(shí)就會(huì)通知所有觀察著對象片林。它是由兩類對象組成譬涡,主題和觀察者,主題負(fù)責(zé)發(fā)布事件料皇,同時(shí)觀察者通過訂閱這些事件來觀察該主體谓松,發(fā)布者和訂閱者是完全解藕,彼此不知道對方的存在践剂,兩者僅僅共享一個(gè)自定義事件的名稱鬼譬。
nodejs核心模塊Event提供EventEmitter對象,也實(shí)現(xiàn)了分布式事件逊脯。如下代碼:
Pub/Sub模式代碼實(shí)現(xiàn):
標(biāo)準(zhǔn)瀏覽器(除了IE8及以下) 自定義事件的實(shí)現(xiàn):
IE8及以下瀏覽器的實(shí)現(xiàn):
兼容多種瀏覽器的實(shí)現(xiàn):
調(diào)用如下: