W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
你想預(yù)測(cè)對(duì)一個(gè)對(duì)象做出改變后的反應(yīng)。
使用備忘錄模式(Memento Pattern)來(lái)跟蹤一個(gè)對(duì)象的變化。使用這個(gè)模式的類(lèi)會(huì)輸出一個(gè)存儲(chǔ)在其他地方的備忘錄對(duì)象。
如果你的應(yīng)用程序可以讓用戶編輯文本文件,例如,他們可能想要撤銷(xiāo)上一個(gè)動(dòng)作。你可以在用戶改變文件之前保存文件現(xiàn)有的狀態(tài),然后回滾到上一個(gè)位置。
class PreserveableText
class Memento
constructor: (@text) ->
constructor: (@text) ->
save: (newText) ->
memento = new Memento @text
@text = newText
memento
restore: (memento) ->
@text = memento.text
pt = new PreserveableText "The original string"
pt.text # => "The original string"
memento = pt.save "A new string"
pt.text # => "A new string"
pt.save "Yet another string"
pt.text # => "Yet another string"
pt.restore memento
pt.text # => "The original string"
備忘錄對(duì)象由PreserveableText#save返回,為了安全保護(hù),分別地存儲(chǔ)著重要的狀態(tài)信息。你可以序列化備忘錄以便來(lái)保證硬盤(pán)中的“撤銷(xiāo)”緩沖或者是那些被編輯的圖片等數(shù)據(jù)密集型對(duì)象。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: