日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javascript設(shè)計(jì)模式 ? 觀察者模式原理與用法實(shí)例分析

瀏覽:141日期:2023-11-02 14:54:02

本文實(shí)例講述了javascript設(shè)計(jì)模式 ? 觀察者模式原理與用法。分享給大家供大家參考,具體如下:

介紹:前面我們針對(duì)系統(tǒng)內(nèi)一對(duì)多,多對(duì)多的情況做了解決方案,是使用中介者模式,將所有關(guān)聯(lián)關(guān)系交由中介者處理。這一節(jié)我們介紹另外一種解決一對(duì)多問(wèn)題的設(shè)計(jì)模式:觀察者模式觀察者模式是使用頻率最高的設(shè)計(jì)模式之一,用于建立一種對(duì)象與對(duì)象之間的依賴關(guān)系。

定義:定義對(duì)象之間的之間的一種一對(duì)多依賴關(guān)系,使得每當(dāng)一個(gè)對(duì)象狀態(tài)發(fā)生改變時(shí),其相關(guān)依賴對(duì)象皆得到通知并被自動(dòng)更新。觀察者模式的別名包括發(fā)布-訂閱模式,模型-視圖模式,監(jiān)聽模式或從屬模式。觀察者模式是一種對(duì)象行為型模式。

場(chǎng)景:我們使用觀察者模式做一個(gè)進(jìn)制轉(zhuǎn)換的小demo

示例:

var Subject = function(){ var obServer = []; var _state; this.getState = function(){ return _state; } this.setState = function(state){ _state = state; this.notifyAllObservers(); } this.attach = function(ob){ obServer.push(ob); } this.notifyAllObservers = function(){ obServer.map(function(item){ item.update(); }); }} var BinaryObserver = function(subject){ var _subject = subject; _subject.attach(this); this.update = function(){ console.log(’Binary String:’ + _subject.getState().toString(2)); }} var OctalObserver = function(subject){ var _subject = subject; _subject.attach(this); this.update = function(){ console.log(’Octal String:’ + _subject.getState().toString(8)); }} var HexaObserver = function(subject){ var _subject = subject; _subject.attach(this); this.update = function(){ console.log(’Hex String:’ + _subject.getState().toString(16)); }} var subject = new Subject(); new HexaObserver(subject);new OctalObserver(subject);new BinaryObserver(subject); subject.setState(15);// Hex String:f// Octal String:17// Binary String:1111

在這個(gè)例子里面Subject稱為目標(biāo),它是被觀察的對(duì)象,一個(gè)目標(biāo)允許被多個(gè)觀察者觀察,這些觀察者存放于obServer的數(shù)組中,當(dāng)目標(biāo)發(fā)生change時(shí)通知所有觀察者。BinaryObserver,OctalObserver,HexaObserver這三個(gè)類稱為觀察者,觀察者將對(duì)目標(biāo)的改變作出反應(yīng)。在觀察者中需要維護(hù)一個(gè)指向目標(biāo)對(duì)象的引用。

觀察者模式總結(jié):

優(yōu)點(diǎn):* 觀察者模式可以實(shí)現(xiàn)表示層和數(shù)據(jù)邏輯層的分離,定義了穩(wěn)定的消息更新傳遞機(jī)制。* 觀察者模式在觀察目標(biāo)和觀察者者之間建立一個(gè)抽象的耦合。觀察目標(biāo)只需要維持一個(gè)抽象觀察者的集合,無(wú)需了解其具體觀察者。* 觀察者模式支持廣播通信,觀察目標(biāo)會(huì)向所有已注冊(cè)的觀察者發(fā)送通知,簡(jiǎn)化了一對(duì)多系統(tǒng)的設(shè)計(jì)難度

缺點(diǎn):* 在存在大量觀察者時(shí),對(duì)所有觀察者的通知會(huì)花大量時(shí)間* 如果觀察者和目標(biāo)之間存在循環(huán)依賴,將會(huì)導(dǎo)致系統(tǒng)崩潰

適用場(chǎng)景:* 系統(tǒng)中存在一個(gè)對(duì)象的改變將導(dǎo)致一個(gè)或多個(gè)其他對(duì)象也發(fā)生改變。* 系統(tǒng)中存在大量依賴鏈,A影響B(tài),B影響C,C影響D

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

標(biāo)簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
激情欧美丁香| 亚洲日产av中文字幕| 日韩1区2区日韩1区2区| 欧美日韩国产传媒| 欧美一级鲁丝片| 国产一区二区三区网| 丰满少妇一区| 91免费精品| 91精品xxx在线观看| 少妇久久久久| 91九色精品| 久久高清国产| 蜜臀av在线播放一区二区三区| 国产色综合网| 一区二区三区国产在线| 亚洲综合激情在线| 日韩国产精品久久久久久亚洲| 日本成人手机在线| 五月激激激综合网色播| 亚洲色图综合| 深夜日韩欧美| 91麻豆精品| 麻豆91在线播放| 成人亚洲一区二区| 日韩在线精品| 亚洲二区视频| 美女久久一区| 日本成人中文字幕| 国产精品毛片aⅴ一区二区三区| 国产精品第一| 国产拍在线视频| 国产一区日韩欧美| 亚洲伊人影院| 综合日韩在线| 久久国产生活片100| 国产另类在线| 麻豆mv在线观看| 一区二区自拍| 日韩精品一级| 国产欧美一区二区三区精品观看| 精品中国亚洲| 亚洲天堂久久| 一区二区三区国产在线| 国产乱人伦丫前精品视频| 国产不卡一区| 日韩视频精品在线观看| 中文一区一区三区免费在线观 | 日韩精品电影| 国产麻豆综合| 美日韩一区二区三区| 亚洲性色av| 亚洲有吗中文字幕| 久久精品国产网站| 欧洲一区二区三区精品| 精品国产亚洲日本| 久久精品不卡| 精品视频一区二区三区四区五区 | 久久精品国产精品亚洲毛片| 日韩免费久久| 国精品一区二区三区| 亚洲人亚洲人色久| 日韩1区2区3区| 国产欧美一级| 日韩专区在线视频| 蜜臀久久久久久久| 欧美一级二区| 国产伊人久久| 亚洲午夜视频| 涩涩av在线| 人在线成免费视频| 欧美日韩国产高清电影| 免费毛片在线不卡| 国产精品久久久久久久久久久久久久久| 99国产精品久久久久久久成人热| 日本中文字幕视频一区| 久久69成人| 一区二区三区四区日本视频| 精品91久久久久| 日本久久综合| 蜜臀av亚洲一区中文字幕| 日本在线不卡视频一二三区| 国产精品久久观看| 91免费精品国偷自产在线在线| 国产视频一区三区| 国产精品久久免费视频| 天堂日韩电影| 欧美日一区二区三区在线观看国产免 | 999国产精品| 国产成人免费精品| 99国产精品久久久久久久成人热 | 91久久久精品国产| 亚洲欧洲另类| 麻豆久久一区二区| 国产亚洲高清视频| 精品国产亚洲一区二区三区大结局| 亚洲日本免费电影| 日韩电影免费网址| 麻豆久久久久久久| 亚洲一区二区三区四区五区午夜 | 婷婷成人av| 日本国产精品| 国产中文欧美日韩在线 | 日韩欧美午夜| 欧美国产日韩电影| 久久aⅴ国产紧身牛仔裤| 欧美成人a交片免费看| 国产欧美日韩在线一区二区| 国产一区二区三区自拍| 高潮一区二区| 国产精品一在线观看| 欧美专区18| 久久天堂精品| 精品国产欧美| 欧美日一区二区在线观看| 欧美特黄视频| 精品美女在线视频| 色综合www| 国产999精品在线观看| 日韩国产一区二| 悠悠资源网久久精品| 日韩不卡免费高清视频| 国产亚洲久久| 国产一区二区三区自拍| 亚洲国产影院| 成人羞羞视频在线看网址| 久久丁香四色| 欧美久久香蕉| 日本成人在线不卡视频| 首页亚洲欧美制服丝腿| 不卡中文字幕| 精品一区二区三区中文字幕在线| 国产精品视频3p| 日韩激情网站| 亚洲a成人v| 在线视频精品| 五月天久久777| 久久在线免费| 国产精品字幕| 日韩精品水蜜桃| 尤物tv在线精品| 少妇精品导航| 久久久国产精品一区二区中文| 日本一二区不卡| 电影91久久久| 精品国产欧美| 国产精品久久免费视频| 国产精品色在线网站| 免费亚洲婷婷| 美女久久久久久| 精品日本视频| 精品久久久久久久| 欧美成a人片免费观看久久五月天| 欧美综合精品| 国产毛片精品| 国产劲爆久久| 国产白浆在线免费观看| 色网在线免费观看| 久久精品97| 国产精品久久777777毛茸茸| 国产日韩欧美中文在线| 日韩高清成人在线| 日韩不卡一区二区| 日韩激情网站| 福利一区二区| 中国字幕a在线看韩国电影| 日韩欧美另类一区二区| 99久久精品网站| 成人av二区| 另类国产ts人妖高潮视频| 在线国产精品一区| 国产美女亚洲精品7777| 久久久亚洲欧洲日产| 国产一区二区三区四区二区| 天堂√8在线中文| 欧美精品一卡| 免费久久99精品国产| 在线观看亚洲精品福利片| 综合亚洲色图| 久久成人高清| 91看片一区| 影音先锋国产精品| 日韩欧美中文字幕一区二区三区| 国产精品1区在线| 99国产精品一区二区| 欧美二区视频| 午夜视频一区二区在线观看| 国产精品久久久免费| 日韩在线欧美| 丝袜亚洲精品中文字幕一区| 国产精品v一区二区三区| 日本精品不卡| 日韩一区精品字幕| 国产精品巨作av| 亚洲成人国产| 婷婷精品在线| 国产日韩电影| 亚洲欧美日本日韩| 国产aa精品| 久久高清免费观看| 美女视频黄久久|