觀察者模式(發布訂閱模式)

2021-10-05 14:06:02 字數 1120 閱讀 9467

簡介:

觀察者模式(又被稱為發布-訂閱(public/subscribe))模式,屬於行為型模式的一種,它定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件再狀態變化時,會通知所有的觀察者物件,使他們能夠自動更新自己。

**塊:

"public"

>發布動態<

/button>

// 觀察者 粉絲

class

fan//接收動態

update()

接收到變化`)}

}class

star

//新增粉絲

add(fan)

//通知粉絲

public()

)this

.fans.

foreach

(fan =>)}

}let star =

newstar()

;let f1 =

newfan

('小紅');

let f2 =

newfan

('小藍');

let f3 =

newfan

('小綠');

let f4 =

newfan

('小灰');

star.

add(f1)

; star.

add(f2)

; star.

add(f3)

; star.

add(f4)

;let

public

= document.

queryselector

('#public');

public

.addeventlistener

('click',(

)=>

)<

/script>

觀察者模式 訂閱發布模式

觀察者模式是一種物件間的一對多依賴關係,當乙個物件的狀態發生變化時,所有依賴他的物件都將得到通知。通常運用在物件之間的訊息通訊中。比如現在有一群學生,可以組成小組,可以尋求幫助 class students askforhelp subject 向大家尋求幫助 this.tasks.foreach ...

發布訂閱者模式 觀察者模式總結

觀察者模式定義 subject維持一系列它的物件observer,當有關狀態發生變更時subject物件則會通知一系列observer物件進行更新。在subject物件新增了一系列observer物件之後,subject維持一系列observer物件,當有關狀態發生變更時subject物件則會通知這...

觀察者模式 vs 發布 訂閱模式

我曾經在面試中被問道,觀察者模式和發布訂閱模式的有什麼區別?我迅速回憶起 head first設計模式 那本書 發布 訂閱 觀察者模式 我知道了,我知道了,別想騙我 我微笑著回答 沒有區別,它們是一樣的。但是面試官笑了,不,它們不一樣。我當時的表情 所以是我錯了嗎?之後我回到家開啟google查詢答...