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

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

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

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

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

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

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

場(chǎng)景:在很多情況下我們的頁(yè)面需要做一些狀態(tài)判斷,是否注冊(cè),是否登錄,剩余金額是否大于500等等,我們通常是在組件中通過(guò)if…else…來(lái)做不同的處理,這種方式耦合嚴(yán)重不滿足單一職責(zé)原則。如何解決這個(gè)問題呢,這一節(jié)我們利用狀態(tài)模式來(lái)解決對(duì)象的狀態(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('對(duì)Dialog設(shè)置顯示狀態(tài):'); dialog.setState(this); } this.toString = function(){ console.log('顯示中......'); }} var HideState = function(){ this.doAction = function(dialog){ console.log('對(duì)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);//對(duì)Dialog設(shè)置顯示狀態(tài):dialog.getState().toString();//顯示中......hideState.doAction(dialog);//對(duì)Dialog設(shè)置隱藏狀態(tài)dialog.getState().toString();//已隱藏......

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

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

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

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

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

感興趣的朋友可以使用在線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久久,三上悠亚国产精品一区二区三区
久久精品国产999大香线蕉| 久久久久一区| 亚洲精品小说| 黄色成人91| 日韩中文在线电影| 久久九九99| 国产精品毛片在线看| 久热精品在线| 日韩精品一区二区三区中文| 国产麻豆精品| 国产一区2区| 亚洲国产成人精品女人| 丝袜美腿亚洲一区| 国产日韩欧美在线播放不卡| 久久久久观看| 国精品一区二区| 亚州欧美在线| 成人污污视频| 欧美日韩国产一区精品一区| 午夜精品一区二区三区国产| 亚洲婷婷丁香| 国产精品成久久久久| 亚洲激情中文| 国产精品一区二区三区四区在线观看| www.九色在线| 亚洲欧美日韩国产一区二区| 亚洲影院天堂中文av色| 久久精品一本| 99精品99| 久久精品女人| 亚洲涩涩av| 成人一区而且| 中文一区一区三区免费在线观| 麻豆久久一区| 亚洲一级少妇| 一区二区三区午夜视频| 精品视频免费| 免费在线观看不卡| 精品高清久久| 天堂成人国产精品一区| 欧美日韩一区二区三区不卡视频 | 老司机精品视频在线播放| 久久久久欧美精品| 97精品国产99久久久久久免费| 三上悠亚国产精品一区二区三区| 日本a口亚洲| 1000部精品久久久久久久久| 国产日韩一区二区三区在线| 欧美一区二区三区高清视频| 国产精品一线| 亚洲综合图色| 欧美日韩黑人| 狠狠躁少妇一区二区三区| 日本不卡一二三区黄网| 成人综合一区| 欧美欧美黄在线二区| 国产一区成人| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 国产999精品在线观看| 国产精品婷婷| 国产精品欧美日韩一区| 天堂成人国产精品一区| 国产99亚洲| 高潮一区二区| 久久中文字幕一区二区三区| 日韩精品电影一区亚洲| 亚洲欧美日本国产专区一区| 久久精品在线| 日韩免费一区| 色婷婷综合网| 国产精品1区在线| 综合干狼人综合首页| 亚洲国产专区| 国产精品亚洲一区二区三区在线观看| 欧美黄页在线免费观看| 美女网站久久| 亚洲一区国产一区| 欧美国产91| 欧美日韩水蜜桃| 国内一区二区三区| 午夜性色一区二区三区免费视频| 一区久久精品| 狠狠操综合网| 亚洲一本视频| 欧美日韩亚洲在线观看| 亚洲va中文在线播放免费| 福利片在线一区二区| 美女久久精品| 欧美精品不卡| 久久99久久久精品欧美| 日韩高清不卡一区二区| 日本aⅴ亚洲精品中文乱码| 亚洲视频二区| 日韩精品国产精品| 91亚洲无吗| 国产日韩视频| 免费亚洲一区| 精品日韩在线| 亚洲女同av| 久久国产中文字幕| 久久五月天小说| 久久久久中文| 91视频一区| 视频福利一区| 国产亚洲午夜| 国产婷婷精品| 国产精品日韩久久久| 亚洲国产成人精品女人| 日韩午夜av| 亚洲精品乱码日韩| 欧美日韩一区二区三区不卡视频| 国产精品videossex| 精品久久久亚洲| av综合电影网站| 国产一区二区三区自拍| 日韩中文字幕一区二区三区| 在线日韩成人| 欧美日韩午夜| 色婷婷色综合| 影音先锋国产精品| 波多野结衣一区| 免费精品视频| 久久国产精品色av免费看| 精品中文字幕一区二区三区四区| 精品国产免费人成网站| 亚洲女同一区| 久久激情五月激情| 日韩一区二区三区免费播放| 天堂成人国产精品一区| 国产精品欧美一区二区三区不卡| 日韩一区欧美| 亚洲精品影院在线观看| 久久免费福利| 黄色亚洲精品| 国产精品观看| 99久久99久久精品国产片果冰| 日韩制服丝袜先锋影音| 精品一区二区三区中文字幕视频| 999国产精品永久免费视频app| 亚洲一区中文| 免费在线观看一区| 欧美jjzz| 国产精品亚洲成在人线| 99热精品久久| 欧美性www| 欧美日韩国产在线观看网站 | 国产日韩欧美一区二区三区在线观看| 国产精品国产一区| 老鸭窝毛片一区二区三区| 国产精品亚洲成在人线| 亚洲精品网址| 精品久久久中文字幕| 午夜在线一区| 日韩欧美网址| 国产美女久久| 伊人久久婷婷| 福利一区和二区| 婷婷精品在线| 久久视频国产| 欧美aaaaaa午夜精品| 免费视频久久| 成人精品视频| 日韩高清三区| aⅴ色国产欧美| 黑人精品一区| 国产欧美自拍一区| 午夜一级在线看亚洲| 欧美男人天堂| 国产精品玖玖玖在线资源| 在线亚洲激情| 亚洲精品88| 毛片不卡一区二区| 日本不卡中文字幕| 在线日韩中文| 日产精品一区二区| 日本一区二区中文字幕| 美女少妇全过程你懂的久久| 精品久久美女| 日本欧美久久久久免费播放网| 99久久www免费| 激情视频网站在线播放色| 国产欧美综合一区二区三区| 亚洲人成亚洲精品| 国产亚洲午夜| 激情久久久久久| 久久久久久婷| 久久精品亚洲| 久久av免费看| 国产精品乱战久久久| 日韩精品1区2区3区| 丝袜亚洲精品中文字幕一区| 欧美亚洲国产激情| 日韩三区免费| 亚洲一区资源| 欧美国产小视频| 狠狠久久伊人| 日本久久精品| 中文字幕色婷婷在线视频| 成人亚洲一区二区| 日韩av有码|