中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

如何使用javascript中的備忘錄模式

這篇文章主要講解了如何使用javascript中的備忘錄模式,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

10年積累的成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有平利免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

介紹:在我們的開(kāi)發(fā)中偶爾會(huì)遇到這樣一種情況,需要對(duì)用戶(hù)的行為進(jìn)行撤銷(xiāo)。要想實(shí)現(xiàn)撤銷(xiāo),首先需要保存軟件系統(tǒng)的歷史狀態(tài),當(dāng)用戶(hù)執(zhí)行撤銷(xiāo)時(shí)用之前的狀態(tài)覆蓋當(dāng)前狀態(tài)。本節(jié)介紹的備忘錄模式提供了一種狀態(tài)恢復(fù)的實(shí)現(xiàn)機(jī)制,使得用戶(hù)可以方便的回到一個(gè)特定的歷史步驟。

定義:在不破壞封裝的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài),并在該對(duì)象之外保存這個(gè)狀態(tài),這樣可以在以后將對(duì)象恢復(fù)到原先保存的狀態(tài),它是一種對(duì)象行為模式,其別名為T(mén)oken。

場(chǎng)景:使用js實(shí)現(xiàn)一個(gè)簡(jiǎn)單的狀態(tài)機(jī),用于狀態(tài)的保存,回退。實(shí)現(xiàn)下備忘錄模式。

示例:

var Memento = function(state){
  var _state = state;
  this.getState = function(){
    return _state;
  }
}
 
var Originator = function(){
  var _state;
  this.setState = function(state){
    _state = state;
  }
  this.getState = function(){
    return _state;
  }
  this.saveStateToMemento = function(){
    return new Memento(_state)
  }
  this.getStateFromMemento = function(memento){
    _state = memento.getState();
  }
}
 
var CareTaker = function(){
  var _mementoList = [];
  this.add = function(memento){
    _mementoList.push(memento);
  }
  this.get = function(index){
    return _mementoList[index];
  }
}
 
var originator = new Originator();
var careTaker = new CareTaker();
originator.setState("State 1");
originator.setState("State 2");
careTaker.add(originator.saveStateToMemento());
originator.setState("State 3");
careTaker.add(originator.saveStateToMemento());
originator.setState("State 4");
 
console.log("當(dāng)前狀態(tài): " + originator.getState());
// 當(dāng)前狀態(tài): State 4
originator.getStateFromMemento(careTaker.get(0));
console.log("恢復(fù)第一次保存狀態(tài): " + originator.getState());
// 恢復(fù)第一次保存狀態(tài): State 2
originator.getStateFromMemento(careTaker.get(1));
console.log("恢復(fù)第二次保存: " + originator.getState());
// 恢復(fù)第二次保存: State 3

這個(gè)例子里面Originator稱(chēng)為原發(fā)器,可以通過(guò)saveStateToMemento創(chuàng)建一個(gè)備忘錄,存儲(chǔ)當(dāng)前狀態(tài)。Memento是一個(gè)備忘錄對(duì)象,只供原發(fā)器使用,提供狀態(tài)提取方法。CareTaker稱(chēng)之為負(fù)責(zé)人也可以叫管理者,它負(fù)責(zé)保存?zhèn)渫洠遣荒軐?duì)備忘錄內(nèi)容進(jìn)行操作或檢查

備忘錄模式總結(jié):

優(yōu)點(diǎn):
* 提供了一種狀態(tài)恢復(fù)的時(shí)間機(jī)制,使得用戶(hù)可以方便的回退到一個(gè)特定的歷史步驟。
* 備忘錄實(shí)現(xiàn)了對(duì)信息的封裝,一個(gè)備忘錄對(duì)象是一種原發(fā)器對(duì)象狀態(tài)的表示,不會(huì)被其他代碼所改動(dòng)。
缺點(diǎn):
* 備忘錄模式的主要缺點(diǎn)是資源消耗過(guò)大,如果需要保存的原發(fā)器類(lèi)的成員變量太多,就不可避免的需要占用大量的存儲(chǔ)空間。

適用場(chǎng)景:
* 保存一個(gè)對(duì)象在某一時(shí)刻的全部或部分狀態(tài)

看完上述內(nèi)容,是不是對(duì)如何使用javascript中的備忘錄模式有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

新聞名稱(chēng):如何使用javascript中的備忘錄模式
文章位置:http://m.2m8n56k.cn/article20/jgesco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)品牌網(wǎng)站設(shè)計(jì)品牌網(wǎng)站制作域名注冊(cè)移動(dòng)網(wǎng)站建設(shè)搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
主站蜘蛛池模板: 黄色一级网址 | 国产丶欧美丶日韩丶不卡影视 | 欧美高清一区 | 欧洲女同互慰在线视频 | 日韩欧美国产精品 | 国产在线观看一区二区三区 | 久爱综合 | 在线久 | 欧美日韩亚洲成色二本道三区 | 在线综合亚洲欧美自拍 | 欧美另类丝袜 | 亚洲一区 在线播放 | 久青草国产手机在线观 | 成人在免费视频手机观看网站 | 国产三级视频在线播放 | a级成人毛片免费视频高清 a级高清观看视频在线看 | 欧美综合成人网 | 玖草在线资源 | 日本αv | 色吧久久| 男女视频在线观看免费 | 亚洲一区欧美二区 | 国产成人高清在线观看播放 | 久草视频资源在线 | 国产高清视频免费观看 | 国产精品99久久99久久久看片 | 免费人成激情视频在线观看冫 | 国产短视频精品一区二区三区 | 免费一级特黄特色黄大任片 | 久久精品国产欧美成人 | 国产一区亚洲欧美成人 | 国产精品视频久久久久 | 成人免费观看一区二区 | 国产精品密蕾丝视频 | 毛片在线不卡 | 99久久久国产精品免费播放器 | 91婷婷射| 美国一级免费 | 国产上床视频 | 99精品免费观看 | 六月丁香久久丫 |