observer 觀察者模式

2021-10-19 11:02:37 字數 906 閱讀 7041

observer----觀察者模式:

當乙個變數值被修改時,可以自動通知所有關注這個變數的其他物件,讓他們自動重新獲得這個變數的新值。

vue裡是怎麼樣發出的通知,用觀察者模式發出的通知。

比如:大家都關心的變數money=1000,有乙個陣列觀察者們,乙個函式用於修改money的值,只要money的值被修改,所有關注這個變數的觀察者們都可以得到訊息。

data物件,專門儲存所有人關注的資料和操作方法,只不過需要額外定義乙個陣列,儲存所有關注這個資料的其他物件。

1.建立data物件

2.定義money

3.定義修改money的函式setmoney

4.定義乙個觀察者們的陣列

5.定義乙個notifyall()的函式,遍歷儲存所有觀察者物件的陣列

6.建立多個觀察者物件,每個觀察者物件都有乙個getmoney函式,可以獲得data中money的值,但是卻不知道何時money的值更新,何時需要重新獲得

7.將這些關注money的物件,追加到data物件的觀察者陣列裡

結果:只要data中用setmoney修改了money變數,就自帶notifyall()函式,遍歷儲存觀察者物件們的陣列,自動呼叫每個觀察者的getmoney()函式

結果:每個觀察者都能在money修改時,第一時間重新獲得money的新值

var data=

, observer:

,notifyall()

)}}var obj1=

} data.observer.

push

(obj1)

; data.

setmoney

(800);

console.

log(obj1.money)

;//800

觀察者模式 Observer

個人理解 觀察者模式的核心是subject的attach和detach方法,載入observer物件 uml類圖 實現 public abstract class subject public void detach observer observer public void notify publ...

觀察者模式 ObServer

觀察者模式 observer 定義物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新 觀察者模式 observer 觀察者模式定義了一對多依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。讓主題物件在狀態發生變化時,會通知所有觀察者物件,讓他們能夠自動...

觀察者模式(OBSERVER)

觀察者模式是我選擇將其列出來的第乙個模式。看了這個模式的概念之後,有種豁然開朗的感覺。工作也由實踐上公升到了理論。平時使用的各種 net 控制項都使用了這種模式,將這種模式應用到組成乙個系統的各個元件中去,怎乙個 妙 字了得。理解了它之後,不竟又對 net 的框架敬佩有佳。不知道這其中隱藏了多少未知...