訂閱發布 設計模式參考js

2021-10-19 14:59:48 字數 1104 閱讀 8615

const event =

(function()

// 訂閱

/** * 訂閱 將型別與函式新增進 事件物件中

* 如果有此型別事件則新增進陣列

* 如果沒有 則重置為空陣列後新增進

*/letsubscribe

=function

( type, fn )

// 發布

letpubilsh

=function

( type ))}

}// 關閉

/** * 乙個type 下可繫結多個事件

* 取出 需要關閉的type 對應的fn 將此事件清除 即可

*/letoff

=function

( type, fn ));

}}return})

()

inte***ce

eventoptions

inte***ce

eventitem

extends

eventoptions

class

event

;constructor()

window.ev =

this

.events;

}one

( type: string, fn: function))}

// 訂閱

on( type: string, fn: function, options?

: eventoptions)

this

.events[type]

.push()

}emit

( type: string, data? any)})

}off

( type: string, fn?

: function)

this

.events[type]

=this

.events[type]

.filter

(e:eventitem)

=> e.fn ==

!fn )

}}

js設計模式 發布訂閱模式

發布訂閱模式中有乙個註冊中心,有訂閱和發布方法,訂閱者需要帶著方法去訂閱乙個事件,當這個事件被發布時,訂閱者執行這個方法 import from lodash import from mntr current dimension description 註冊中心 author jsong laste...

js設計模式 發布訂閱模式

發布訂閱模式又叫觀察者模式,它定義物件間一對多的依賴關係,當乙個物件狀態發生改變時,所有依賴於它的物件都將得到通知。在js設計模式與開發實踐一書中使用的是樓盤資訊更新發布的案例。大概內容是 想要買房的人們會訂閱自己想要的房產資訊,如果房產資訊有更新,就會發布給這些人。比如佩奇想買乙個房子,他可以在售...

js 設計模式 訂閱 發布模式

訂閱 發布模式定義了物件之間的一種一對多的依賴關係,當乙個物件的狀態發生變化時,所有依賴它的物件都可以得到通知。訂閱 發布模式與觀察者模式概念相似,但在訂閱 發布模式中,訂閱者與發布者之間多了一層中介軟體 乙個被抽象出來的資訊排程中心。松耦合 訂閱者可以訂閱多個型別的訊息,發布者不需要關心有多少訂閱...