JS中什麼是發布 訂閱模式

2022-01-15 05:20:37 字數 836 閱讀 3733

**文章部分內容:

發布訂閱模式介紹

發布---訂閱模式又叫觀察者模式,它定義了物件間的一種一對多的關係,讓多個觀察者物件同時監聽某乙個主題物件,當乙個物件發生改變時,所有依賴於它的物件都將得到通知。

現實生活中的發布-訂閱模式;

在上面的故事中,可以看出是乙個典型的發布訂閱模式,賣家是屬於發布者,小紅,小明等屬於訂閱者,訂閱該店鋪,賣家作為發布者,當鞋子到了的時候,會依次通知小明,小紅等,依次使用旺旺等工具給他們發布訊息;

發布訂閱模式的優點:

1.支援簡單的廣播通訊,當物件狀態發生改變時,會自動通知已經訂閱過的物件。

2.比如上面的列子,小明,小紅不需要天天逛**網看鞋子到了沒有,在合適的時間點,發布者(賣家)來貨了的時候,會通知該訂閱者(小紅,小明等人)。

發布者與訂閱者耦合性降低,發布者只管發布一條訊息出去,它不關心這條訊息如何被訂閱者使用,同時,訂閱者只監聽發布者的事件名,只要發布者的事件名不變,它不管發布者如何改變;同理賣家(發布者)它只需要將鞋子來貨的這件事告訴訂閱者(買家),他不管買家到底買還是不買,還是買其他賣家的。只要鞋子到貨了就通知訂閱者即可。

**文章:

對於第一點,我們日常工作中也經常使用到,比如我們的ajax請求,請求有成功(success)和失敗(error)的**函式,我們可以訂閱ajax的success和error事件。我們並不關心物件在非同步執行的狀態,我們只關心success的時候或者error的時候我們要做點我們自己的事情就可以了~
發布訂閱模式的缺點:

1.建立訂閱者需要消耗一定的時間和記憶體。

2.雖然可以弱化物件之間的聯絡,如果過度使用的話,反而使**不好理解及**不好維護等等。

js發布訂閱模式

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

js發布訂閱者模式

發布 訂閱模式可以用乙個全域性的 event 物件來實現,訂閱者不需要了解訊息來自哪個發布者,發布者也不知道訊息會推送給哪些訂閱者,event 作為乙個類似 中介者 的角色,把訂閱者和發布者聯絡起來。統一訊息管理,將訊息傳送給所有訂閱這個訊息型別的模組 採用 訂閱 發布 觀察者 這種設計模組式開發 ...

js 發布 訂閱者模式

發布 訂閱模式 bw 2020 07 29 const event on function name,method,target else this.regsiter name push emit function name off function name,target 移除事件 this.re...