JS設計模式 觀察者模式學習 一

2021-09-11 12:33:59 字數 1017 閱讀 9989

觀察者模式又成為發布-訂閱者模式,主要用來解決主題物件和觀察者之間的耦合關係

舉乙個例子來說,筆者和朋友都很喜歡在美女開的一家衣服店買衣服,但是衣服不是每天都會上新的,所以就和朋友們

要了老闆娘的**,然後每隔一天打個**問問有沒有衣服上新啊,最終會發現老闆娘把我們都拉黑了.哈哈哈,但其實

我們在日常生活不會這麼做的,是美麗的老闆娘把我們每個人的**留下來,一旦有新裝,會乙個個的**通知我們.

這也是發布-訂閱者模式了,客戶是訂閱者,老闆娘是發布者

發布訂閱模式規則,先訂閱->在發布

// 先訂閱

// 因為可以有多個訂閱者,所以宣告乙個物件儲存訂閱者資訊

const personlist =

function

subscribe

(key,cb)

personlist[key]

.push

(cb)

}// 發布器

function

trigger()

for(

let index =

0,length = cbs.length; index < length; index++)}

// 小紅小明分別在老闆那裡訂閱自己的資訊

subscribe

('小紅'

,(goods)

=>了`)

})subscribe

('小明'

,(goods)

=>了`)

})function

remove

(key, cb)if(

!cb)

}// 老闆發現滿足要求了,進行發布

trigger

('小紅'

,'lv包'

)trigger

('小明'

,'籃球鞋'

)

這是筆者寫的第二篇部落格,希望每天都能堅持下去,將自己以前,今後學習的知識總結起來,如有不正確的地方還請共同交流,希望和大家共同成長

JS設計模式 觀察者模式

又來更新了,昨天學了白賀翔老師的觀察者模式,分享一下,直接看 doctype html en utf 8 viewport content width device width,initial scale 1.0 document title commonutil.js script head ut...

學習設計模式 觀察者模式

說明 觀察者模式就是有兩個角色,乙個觀察者 乙個通知者,兩者的關係是多對一。當某個是事件觸發時,通知者通知觀察者去處理相應的事件。為了解耦合,需要將兩個角色都先抽象,然後再定義具體的實現類。缺點 需要所有觀察者處理相應事件名稱一致 需求 學生自習的時候開小差,需要代表時刻觀察老師是否來了,如果來了,...

設計模式學習 觀察者模式

定義 定義物件間一種一對多的依賴關係,使得每當乙個物件發生變化時,則所有依賴於他的物件都會得到通知並自動更新。使用場景 特點 實現物件的解耦,將觀察者和被觀察者完全隔離,只依賴於observe和observable抽象。簡單實現例子 抽象觀察者類,為所有具體觀察者定義乙個介面,在得到通知時更新自己 ...