js 設計模式 訂閱 發布模式

2022-09-09 11:45:08 字數 1070 閱讀 7879

訂閱-發布模式定義了物件之間的一種一對多的依賴關係,當乙個物件的狀態發生變化時,所有依賴它的物件都可以得到通知。

訂閱-發布模式與觀察者模式概念相似,但在訂閱-發布模式中,訂閱者與發布者之間多了一層中介軟體:乙個被抽象出來的資訊排程中心。

松耦合:訂閱者可以訂閱多個型別的訊息,發布者不需要關心有多少訂閱者。

class event;

}//訂閱

subscribe(name,userid,fn)

this

.list[name].push();

}//發布

publish(name,content));

}//取消訂閱

removesub(name,userid)

});}

} let event = new

event();

//event.subscribe('人民**','a',function

(content));

//event.subscribe('湖北**','b',function

(content));

//event.subscribe('人民**','c',function

(content));

//event.publish('人民**','最高禮遇!以國之名,致敬!');

event.publish('湖北**','教育部明確!2023年起免試認定!');

event.removesub('人民**','a');

event.publish('人民**',"嚴防不懈!新增確診2例,均為境外輸入");

每次訂閱會將訂閱者的資訊存與排程中心(event例項的list)中,當發布資訊時(如人民**傳送新聞),會從list中取出相關發布的資訊陣列(人民**的訂閱者陣列)進行遍歷執行**函式。

輸出結果如下:

js設計模式 發布訂閱模式

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

js設計模式 發布訂閱模式

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

js發布訂閱模式

再開始之前先簡單介紹下訂閱 發布模式,因為這種設計模式在vue 中起到比較關鍵的作用。首先,簡單來說訂閱 發布模式是一種定義一對多依賴關係的設計模式,當乙個物件狀態發生變化時候,所依賴於他的所有物件都將得到通知。舉個簡單例子 很多學生到書店買書,a同學定了一本 js高程 b同學定了一本 js設計模式...