国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

JavaScript觀察者模式(經(jīng)典)_javascript技巧

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:47:03
文檔

JavaScript觀察者模式(經(jīng)典)_javascript技巧

JavaScript觀察者模式(經(jīng)典)_javascript技巧:Observer模式也叫觀察者模式,是由GoF提出的23種軟件設(shè)計(jì)模式的一種。Observer模式是行為模式之一,它的作用是當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生變化時(shí),能夠自動(dòng)通知其他關(guān)聯(lián)對(duì)象,自動(dòng)刷新對(duì)象狀態(tài)。 Observer模式的概念 Observer模式是行為模式之一,它的作用是當(dāng)
推薦度:
導(dǎo)讀JavaScript觀察者模式(經(jīng)典)_javascript技巧:Observer模式也叫觀察者模式,是由GoF提出的23種軟件設(shè)計(jì)模式的一種。Observer模式是行為模式之一,它的作用是當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生變化時(shí),能夠自動(dòng)通知其他關(guān)聯(lián)對(duì)象,自動(dòng)刷新對(duì)象狀態(tài)。 Observer模式的概念 Observer模式是行為模式之一,它的作用是當(dāng)

Observer模式也叫觀察者模式,是由GoF提出的23種軟件設(shè)計(jì)模式的一種。Observer模式是行為模式之一,它的作用是當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生變化時(shí),能夠自動(dòng)通知其他關(guān)聯(lián)對(duì)象,自動(dòng)刷新對(duì)象狀態(tài)。

Observer模式的概念

Observer模式是行為模式之一,它的作用是當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生變化時(shí),能夠自動(dòng)通知其他關(guān)聯(lián)對(duì)象,自動(dòng)刷新對(duì)象狀態(tài)。
Observer模式提供給關(guān)聯(lián)對(duì)象一種同步通信的手段,使某個(gè)對(duì)象與依賴它的其他對(duì)象之間保持狀態(tài)同步。

Observer模式的角色:

Subject(被觀察者)
被觀察的對(duì)象。當(dāng)需要被觀察的狀態(tài)發(fā)生變化時(shí),需要通知隊(duì)列中所有觀察者對(duì)象。Subject需要維持(添加,刪除,通知)一個(gè)觀察者對(duì)象的隊(duì)列列表。
ConcreteSubject
被觀察者的具體實(shí)現(xiàn)。包含一些基本的屬性狀態(tài)及其他操作。
Observer(觀察者)
接口或抽象類(lèi)。當(dāng)Subject的狀態(tài)發(fā)生變化時(shí),Observer對(duì)象將通過(guò)一個(gè)callback函數(shù)得到通知。
ConcreteObserver
觀察者的具體實(shí)現(xiàn)。得到通知后將完成一些具體的業(yè)務(wù)邏輯處理。

觀察者模式( 又叫發(fā)布者-訂閱者模式 )應(yīng)該是最常用的模式之一. 在很多語(yǔ)言里都得到大量應(yīng)用. 包括我們平時(shí)接觸的dom事件. 也是js和dom之間實(shí)現(xiàn)的一種觀察者模式.

只要訂閱了div的click事件. 當(dāng)點(diǎn)擊div的時(shí)候, function click就會(huì)被觸發(fā).

那么到底什么是觀察者模式呢. 先看看生活中的觀察者模式。

好萊塢有句名言. “不要給我打電話, 我會(huì)給你打電話”. 這句話就解釋了一個(gè)觀察者模式的來(lái)龍去脈。 其中“我”是發(fā)布者, “你”是訂閱者。

再舉個(gè)例子,我來(lái)公司面試的時(shí)候,完事之后每個(gè)面試官都會(huì)對(duì)我說(shuō):“請(qǐng)留下你的聯(lián)系方式, 有消息我們會(huì)通知你”。 在這里“我”是訂閱者, 面試官是發(fā)布者。所以我不用每天或者每小時(shí)都去詢問(wèn)面試結(jié)果, 通訊的主動(dòng)權(quán)掌握在了面試官手上。而我只需要提供一個(gè)聯(lián)系方式。

觀察者模式可以很好的實(shí)現(xiàn)2個(gè)模塊之間的解耦。 假如我正在一個(gè)團(tuán)隊(duì)里開(kāi)發(fā)一個(gè)html5游戲. 當(dāng)游戲開(kāi)始的時(shí)候,需要加載一些圖片素材。加載好這些圖片之后開(kāi)始才執(zhí)行游戲邏輯. 假設(shè)這是一個(gè)需要多人合作的項(xiàng)目. 我完成了Gamer和Map模塊, 而我的同事A寫(xiě)了一個(gè)圖片加載器loadImage.

loadImage的代碼如下

當(dāng)圖片加載好之后, 再渲染地圖, 執(zhí)行游戲邏輯. 嗯, 這個(gè)程序運(yùn)行良好. 突然有一天, 我想起應(yīng)該給游戲加上聲音功能. 我應(yīng)該讓圖片加載器添上一行代碼.

可是寫(xiě)這個(gè)模塊的同事A去了外地旅游. 于是我打電話給他, 喂. 你的loadImage函數(shù)在哪, 我能不能改一下, 改了之后有沒(méi)有副作用. 如你所想, 各種不淡定的事發(fā)生了. 如果當(dāng)初我們能這樣寫(xiě)呢:

loadImage完成之后, 它根本不關(guān)心將來(lái)會(huì)發(fā)生什么, 因?yàn)樗墓ぷ饕呀?jīng)完成了. 接下來(lái)它只要發(fā)布一個(gè)信號(hào).

那么監(jiān)聽(tīng)了loadImage的'ready'事件的對(duì)象都會(huì)收到通知. 就像上個(gè)面試的例子. 面試官根本不關(guān)心面試者們收到面試結(jié)果后會(huì)去哪吃飯. 他只負(fù)責(zé)把面試者的簡(jiǎn)歷搜集到一起. 當(dāng)面試結(jié)果出來(lái)時(shí)照著簡(jiǎn)歷上的電話挨個(gè)通知.

說(shuō)了這么多概念, 來(lái)一個(gè)具體的實(shí)現(xiàn). 實(shí)現(xiàn)過(guò)程其實(shí)很簡(jiǎn)單. 面試者把簡(jiǎn)歷扔到一個(gè)盒子里, 然后面試官在合適的時(shí)機(jī)拿著盒子里的簡(jiǎn)歷挨個(gè)打電話通知結(jié)果.

最后用觀察者模式來(lái)做一個(gè)成人電視臺(tái)的小應(yīng)用.

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JavaScript觀察者模式(經(jīng)典)_javascript技巧

JavaScript觀察者模式(經(jīng)典)_javascript技巧:Observer模式也叫觀察者模式,是由GoF提出的23種軟件設(shè)計(jì)模式的一種。Observer模式是行為模式之一,它的作用是當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生變化時(shí),能夠自動(dòng)通知其他關(guān)聯(lián)對(duì)象,自動(dòng)刷新對(duì)象狀態(tài)。 Observer模式的概念 Observer模式是行為模式之一,它的作用是當(dāng)
推薦度:
  • 熱門(mén)焦點(diǎn)

最新推薦

猜你喜歡

熱門(mén)推薦

專題
Top
主站蜘蛛池模板: 亚洲欧美在线视频 | 小处雏高清一区二区三区 | 99热成人精品免费久久 | 黄色毛片视频 | 97国产精品欧美一区二区三区 | 中文字幕有码在线观看 | 美女一级毛片免费观看 | 久久亚洲伊人中字综合精品 | 亚洲 国产 日韩 欧美 | 97成人资源 | 热久久国产 | 欧美一区二区三区网站 | 伊人久久国产 | 成人三级在线 | 国产日韩一区二区三区在线观看 | 欧美日本国产 | 国产日韩高清一区二区三区 | 国产成人一区二区三区视频免费蜜 | 久久久久777777人人人视频 | 久久综合中文字幕一区二区 | 香蕉网视频 | 91精品国产91热久久p | 成人美女黄网站色大色费 | 精品国产一区二区三区香蕉 | 欧美日韩国产精品综合 | 久久精品综合国产二区 | 日韩欧美综合视频 | 久久伊人免费 | 精品一区二区在线观看 | 国产精品久久久久久久牛牛 | 国内精品一区二区2021在线 | 特级全黄一级毛片视频 | 女同互忝互慰dv毛片观看 | 一区二区国产在线观看 | 在线不卡日韩 | 免费毛片网 | 另类在线 | 国产综合精品一区二区 | 国产成人高清亚洲一区91 | 一区在线播放 | 欧美人与曾 |