第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

章節(jié)
問答
課簽
筆記
評(píng)論
占位
占位

觀察者模式的理解

圣誕主題也少量運(yùn)用一些設(shè)計(jì)模式,結(jié)合下實(shí)際的代碼,讓大家對(duì)模式的實(shí)際運(yùn)用有一定的理解。這里主要講解下最常見"觀察者模式"的概念,并且在后面的代碼會(huì)實(shí)際運(yùn)用到

理論上說,觀察者模式又叫發(fā)布-訂閱模式,就是定義一個(gè)一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變,所依賴它的對(duì)象將會(huì)得到這個(gè)改變的通知。在JS的實(shí)現(xiàn)級(jí)上,一般通過事件的方式模擬發(fā)布-訂閱模式

簡單的來說,我們可以這樣想下,去商場(chǎng)買衣服,剛好斷貨了,特別喜歡的話就會(huì)留下電話,等待賣家通知,所以就是一個(gè)典型的發(fā)布-訂閱的關(guān)系,買家不需要每天去詢問是否到貨,賣家到后才會(huì)主動(dòng)通知

說了半天,在JS中用這個(gè)東東具體干嘛呢? 設(shè)計(jì)模式的核心就是為了解耦,解耦,解耦重要事說三遍。通過這個(gè)模式,一個(gè)對(duì)象可以不再顯示的調(diào)用另外一個(gè)對(duì)象的接口了,或者不關(guān)心對(duì)象的內(nèi)部運(yùn)行狀態(tài),只對(duì)感興趣的事件進(jìn)行觀察了,具體用法后續(xù)的頁面切換會(huì)講解到,這里先理解下如何實(shí)現(xiàn)這個(gè)模式的簡單邏輯。

JS里對(duì)觀察者模式的實(shí)現(xiàn)是通過回調(diào)來實(shí)現(xiàn)的,參考右邊的代碼observer.js,其內(nèi)部包含了3個(gè)方法:訂閱、退訂、發(fā)布也就是對(duì)應(yīng)的bind、unbind、trigger方法

創(chuàng)建一個(gè)觀察者對(duì)象

var observer = new Observer();

通過調(diào)用subscribe方法,實(shí)現(xiàn)一個(gè)事件的觀察

observer.subscribe("任務(wù)名",處理函數(shù))

通過publish觸發(fā)觀察事件,在任意時(shí)刻觸發(fā)了這個(gè)觀察的任務(wù)名,將會(huì)觸發(fā)這個(gè)事件訂閱subscribe方法

 observer.publish("任務(wù)名")

取消事件訂閱,意味著就不會(huì)執(zhí)行了

 observer.unsubscribe("任務(wù)名")

觀察者的使用場(chǎng)合就是:當(dāng)一個(gè)對(duì)象的改變需要同時(shí)改變其它對(duì)象,并且它不知道具體有多少對(duì)象需要改變的時(shí)候,就應(yīng)該考慮使用觀察者模式。總的來說,觀察者模式所做的工作就是在解耦,讓耦合的雙方都依賴于抽象,而不是依賴于具體。從而使得各自的變化都不會(huì)影響到另一邊的變化。概念是有一點(diǎn)抽象的,等到后面實(shí)際結(jié)合理解。

任務(wù)

?不會(huì)了怎么辦
||

提問題

寫筆記

公開筆記
提交
||

請(qǐng)驗(yàn)證,完成請(qǐng)求

由于請(qǐng)求次數(shù)過多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求

加群二維碼

打開微信掃碼自動(dòng)綁定

您還未綁定服務(wù)號(hào)

綁定后可得到

  • · 粉絲專屬優(yōu)惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問題答復(fù)提醒
  • · 賬號(hào)支付安全提醒

收藏課程后,能更快找到我哦~

使用 Ctrl+D 可將課程添加到書簽

邀請(qǐng)您關(guān)注公眾號(hào)
關(guān)注后,及時(shí)獲悉本課程動(dòng)態(tài)

舉報(bào)

0/150
提交
取消
全部 精華 我要發(fā)布
全部 我要發(fā)布
最熱 最新
只看我的

手記推薦

更多

本次提問將花費(fèi)2個(gè)積分

你的積分不足,無法發(fā)表

為什么扣積分?

本次提問將花費(fèi)2個(gè)積分

繼續(xù)發(fā)表請(qǐng)點(diǎn)擊 "確定"

為什么扣積分?