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

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

javascript設(shè)計模式 ? 狀態(tài)模式原理與用法實(shí)例分析

瀏覽:48日期:2023-11-02 15:34:33

本文實(shí)例講述了javascript設(shè)計模式 ? 狀態(tài)模式原理與用法。分享給大家供大家參考,具體如下:

介紹:狀態(tài)模式用于解決系統(tǒng)中復(fù)雜對象的狀態(tài)轉(zhuǎn)換以及不同狀態(tài)下行為的封裝問題。狀態(tài)模式將一個對象的狀態(tài)從該對象中分離出來,使得對象狀態(tài)可以靈活變化。

定義:允許一個對象在其內(nèi)部狀態(tài)改變時改變它的行為,對象看起來似乎修改了它的類,其別名為狀態(tài)對象,狀態(tài)模式是一種對象行為型模式。

場景:在很多情況下我們的頁面需要做一些狀態(tài)判斷,是否注冊,是否登錄,剩余金額是否大于500等等,我們通常是在組件中通過if…else…來做不同的處理,這種方式耦合嚴(yán)重不滿足單一職責(zé)原則。如何解決這個問題呢,這一節(jié)我們利用狀態(tài)模式來解決對象的狀態(tài)切換。

示例:

var Dialog = function(){ var _state = null; this.setState = function(state){ _state = state; } this.getState = function(){ return _state; }} var ShowState = function(){ this.doAction = function(dialog){ console.log('對Dialog設(shè)置顯示狀態(tài):'); dialog.setState(this); } this.toString = function(){ console.log('顯示中......'); }} var HideState = function(){ this.doAction = function(dialog){ console.log('對Dialog設(shè)置隱藏狀態(tài):'); dialog.setState(this); } this.toString = function(){ console.log('已隱藏......'); }} var dialog = new Dialog(); var showState = new ShowState();var hideState = new HideState(); showState.doAction(dialog);//對Dialog設(shè)置顯示狀態(tài):dialog.getState().toString();//顯示中......hideState.doAction(dialog);//對Dialog設(shè)置隱藏狀態(tài)dialog.getState().toString();//已隱藏......

這個例子里Dialog對象有兩種狀態(tài),顯示和隱藏,我把兩種狀態(tài)提取出來,使得狀態(tài)的管理更加靈活。在這個例子里面Dialog稱之為環(huán)境類,環(huán)境類又稱為上下文類,他擁有多種狀態(tài)。環(huán)境類內(nèi)部需要維護(hù)一個state對象用來定義當(dāng)前狀態(tài)。HideState,ShowState稱之為狀態(tài)類,對應(yīng)環(huán)境類的一個具體狀態(tài),toString稱之為狀態(tài)類的行為,每一個狀態(tài)類的行為都有所不同。

狀態(tài)模式總結(jié):

優(yōu)點(diǎn):* 封裝了狀態(tài)的轉(zhuǎn)換規(guī)則,在狀態(tài)模式中可以將狀態(tài)的轉(zhuǎn)換代碼封裝在環(huán)境類或者具體狀態(tài)類中,方便對狀態(tài)轉(zhuǎn)換代碼進(jìn)行管理。* 將所有與某個狀態(tài)有關(guān)的行為放到一個類中,只需要注入一個不同的狀態(tài)對象即可使環(huán)境對象擁有不同行為

缺點(diǎn):* 狀態(tài)模式的使用必然會增加系統(tǒng)中狀態(tài)類的數(shù)量,導(dǎo)致開銷變大。* 結(jié)構(gòu)設(shè)計交付為咋,使用不當(dāng)會導(dǎo)致程序結(jié)構(gòu)和代碼混亂,增加系統(tǒng)設(shè)計難度。

適用場景:* 對象的行為依賴于它的狀態(tài),狀態(tài)改變將導(dǎo)致行為的變化* 在代碼中包含大量與對象狀態(tài)有關(guān)的條件語句

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

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

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

標(biāo)簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲资源在线| 国内在线观看一区二区三区| 成人av三级| 中文字幕成在线观看| 人人草在线视频| 婷婷激情久久| 色婷婷精品视频| 亚洲午夜久久久久久尤物| 蜜桃成人av| 亚洲精品美女91| 久久久久久亚洲精品美女| 日韩免费在线| 亚洲欧美不卡| 国产欧美欧美| 日韩不卡免费高清视频| 日韩视频在线一区二区三区 | av一区二区高清| 美国欧美日韩国产在线播放| 91麻豆精品激情在线观看最新| 国产精品22p| 日韩精品一区二区三区免费观看| 日韩中文字幕亚洲一区二区va在线| 日韩欧美久久| 国产va免费精品观看精品视频| 亚洲国产综合在线看不卡| 美美哒免费高清在线观看视频一区二区| 国产麻豆一区二区三区| 久久久久亚洲| 日韩精品久久理论片| 国产一区二区三区久久久久久久久| 久久久国产精品一区二区中文| 免播放器亚洲一区| sm捆绑调教国产免费网站在线观看 | 国产一区二区亚洲| 99久久亚洲精品| 日本在线视频一区二区| 欧美成a人免费观看久久| 日韩区欧美区| 久久国产电影| 国产精品www.| 美女精品一区| 精品免费av一区二区三区| 国产精品毛片在线看| 精品久久中文| 亚洲久久一区| 日韩精品免费一区二区三区| 国产一卡不卡| 国产精品老牛| 成人羞羞视频在线看网址| 国产精品亚洲二区| 国产亚洲一级| 日韩精品dvd| 国产精品一卡| 免费久久精品视频| 私拍精品福利视频在线一区| 国产精品igao视频网网址不卡日韩| 激情婷婷久久| 成人精品动漫一区二区三区| 自拍自偷一区二区三区| 999国产精品视频| 国产精品久久久久77777丨| 亚洲欧美日韩国产一区二区| 日韩免费视频| 国产一区调教| 国产精一区二区| 亚洲毛片在线免费| 在线视频日韩| 狠狠操综合网| 婷婷激情一区| 正在播放日韩精品| 精品视频网站| 国产图片一区| 日韩av二区在线播放| 另类亚洲自拍| 欧美日韩激情| 99久久九九| se01亚洲视频| 亚洲精品88| 国产成人精品一区二区免费看京 | 精品成av人一区二区三区| 亚洲开心激情| 欧美在线综合| 香蕉久久久久久久av网站| 欧美日韩精品免费观看视频完整| 久久美女精品| 欧美日中文字幕| 999久久久国产精品| 欧美成人精品三级网站| 97精品国产| 成人片免费看| 美女av在线免费看| 亚洲国产欧美日本视频| 成人综合一区| 日韩深夜视频| 日韩不卡在线| 国产精品99一区二区| 深夜福利视频一区二区| www.九色在线| 久久精品动漫| 亚洲国产专区校园欧美| 欧美91精品| 99香蕉国产精品偷在线观看| 欧美在线亚洲| 久久亚洲影院| 日韩精品导航| 国产精品久久久久9999高清| 麻豆极品一区二区三区| 国产一区二区三区亚洲综合| 久久久久国产一区二区| 在线国产一区二区| 视频一区欧美精品| 一区二区三区四区精品视频| 欧美视频一区| 国产一区二区久久久久| 另类专区亚洲| 一级欧洲+日本+国产| 免费在线观看一区二区三区| 日韩精品社区| 卡一卡二国产精品| 欧美精品高清| 蜜芽一区二区三区| 国产精品一级| av高清不卡| 久久不射中文字幕| 欧美日一区二区在线观看| 精品不卡一区| 久久精品高清| 日韩激情一二三区| 精品国产一区二区三区噜噜噜| 最近高清中文在线字幕在线观看1| 91精品国产自产在线观看永久∴| 蜜芽一区二区三区| 精品国产欧美| 伊人精品视频| 国产精品sss在线观看av| 久久蜜桃精品| 日本少妇精品亚洲第一区| 精品成人18| 久久国产福利| 久久免费福利| 国产一级一区二区| 国产精品亚洲欧美| 久久亚洲精品中文字幕蜜潮电影| 中文字幕一区二区三区在线视频| 国产极品嫩模在线观看91精品| 视频小说一区二区| 日本午夜精品久久久久| 色婷婷狠狠五月综合天色拍| 日本少妇一区二区| 激情久久久久久| 国产精品亚洲产品| 午夜在线视频一区二区区别| 成人在线视频区| 日产欧产美韩系列久久99| 韩国精品主播一区二区在线观看| 婷婷综合一区| 成人看片网站| 国产精品magnet| 日韩在线卡一卡二| 成人片免费看| 国产福利资源一区| 视频一区中文字幕国产| 精品日韩视频| 国产欧美日韩综合一区在线播放| 亚洲福利精品| 精品淫伦v久久水蜜桃| 中文字幕一区二区精品区| 日本精品在线中文字幕| 麻豆精品一区二区综合av| 亚洲视频二区| 美女少妇全过程你懂的久久| 国产极品一区| 亚州国产精品| 尹人成人综合网| 久久久国产精品一区二区中文| 国产精品视频一区视频二区| 老司机精品久久| 不卡在线一区二区| 日韩精品dvd| 成人在线视频免费看| 国产精品极品在线观看| 综合亚洲自拍| 国产精品美女久久久| 欧美日韩一区二区综合| 国产一区三区在线播放| 国产欧美啪啪| 婷婷精品在线| 日韩中文欧美在线| 亚洲一区二区网站| 91精品电影| 久久久成人网| 蜜桃av在线播放| av日韩中文| 国产白浆在线免费观看| 91亚洲一区| 亚洲啊v在线| 亚洲成人一区在线观看| 日韩一区自拍| 日韩影院二区| 久久精品青草|