發布訂閱模式中有乙個註冊中心,有訂閱和發布方法,訂閱者需要帶著方法去訂閱乙個事件,當這個事件被發布時,訂閱者執行這個方法
import _ from
'lodash'
;// import from './mntr-current-dimension';
/* * @description: 註冊中心
* @author: jsong
* @lasteditors: jsong
* @date: 2019-04-12 08:58:30
* @lastedittime: 2019-04-14 10:11:24
*/export
class
mntrpublish
;// uid = -1;
// dashboarddimension: mntrcurrentdimension;
constructor()
;this
.uid =-1
;}// 訂閱乙個事件,把這個事件放到 全域性的 物件中 用於 發布時呼叫
subscribe
(event, func)
this
.topics[event]
.push()
;}// 發布 呼叫訂閱時 的方法
publish
(event, args =
null
)const subscribers =
this
.topics[event]
;let len = subscribers ? subscribers.length :0;
while
(len--)}
unsubscribe
(token)}}
// set(dashboarddimension: mntrcurrentdimension)
}
const publish =
newmntrpublish()
;publish.
subscribe
('event',(
)=> console.
log(
' subscribe event '))
;publish.
publish
('event'
);
js設計模式 發布訂閱模式
發布訂閱模式又叫觀察者模式,它定義物件間一對多的依賴關係,當乙個物件狀態發生改變時,所有依賴於它的物件都將得到通知。在js設計模式與開發實踐一書中使用的是樓盤資訊更新發布的案例。大概內容是 想要買房的人們會訂閱自己想要的房產資訊,如果房產資訊有更新,就會發布給這些人。比如佩奇想買乙個房子,他可以在售...
js 設計模式 訂閱 發布模式
訂閱 發布模式定義了物件之間的一種一對多的依賴關係,當乙個物件的狀態發生變化時,所有依賴它的物件都可以得到通知。訂閱 發布模式與觀察者模式概念相似,但在訂閱 發布模式中,訂閱者與發布者之間多了一層中介軟體 乙個被抽象出來的資訊排程中心。松耦合 訂閱者可以訂閱多個型別的訊息,發布者不需要關心有多少訂閱...
js發布訂閱模式
再開始之前先簡單介紹下訂閱 發布模式,因為這種設計模式在vue 中起到比較關鍵的作用。首先,簡單來說訂閱 發布模式是一種定義一對多依賴關係的設計模式,當乙個物件狀態發生變化時候,所依賴於他的所有物件都將得到通知。舉個簡單例子 很多學生到書店買書,a同學定了一本 js高程 b同學定了一本 js設計模式...