介紹:
備忘錄模式是一種欣慰模式,該模式用于保存對(duì)象當(dāng)前狀態(tài)俊扳,并且在之后可以再次恢復(fù)到此狀態(tài)菊值,這有點(diǎn)像我們平時(shí)說的“后悔藥”。備忘錄模式實(shí)現(xiàn)的方式需要保證被保存的對(duì)象狀態(tài)不能被對(duì)象從外部訪問刻剥,目的是為了保護(hù)好被保存的這些對(duì)象狀態(tài)的完整性以及內(nèi)部實(shí)現(xiàn)不向外暴露遮咖。
定義:
在不破壞封閉的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài)造虏,并在該對(duì)象之外保存這個(gè)狀態(tài)御吞,這樣,以后就可將該對(duì)象恢復(fù)到原先保存的狀態(tài)漓藕。
角色介紹:
Originator: 負(fù)責(zé)創(chuàng)建一個(gè)備忘錄陶珠,可以記錄、恢復(fù)自身的內(nèi)部狀態(tài)享钞。同時(shí)Originator還可以根據(jù)需要決定Memento存貯自身的哪些內(nèi)部狀態(tài)揍诽。
Memento:備忘錄角色,用于儲(chǔ)存Originator的內(nèi)部狀態(tài)栗竖,并且可以防止Originator以外的對(duì)象訪問Memento暑脆。
Caretaker:負(fù)責(zé)儲(chǔ)存?zhèn)渫洠荒軐?duì)備忘錄的內(nèi)容進(jìn)行操作和訪問狐肢,只能夠?qū)渫泜鬟f給其他對(duì)象添吗。
簡(jiǎn)單示例:
對(duì)備忘錄模式來說,Activity的onSaveInstanceState就是用于保存activity的狀態(tài)份名。同時(shí)比較貼切的場(chǎng)景應(yīng)該是游戲中的存檔功能碟联,該功能是將游戲進(jìn)度存貯到本地文件系統(tǒng)或者數(shù)據(jù)庫(kù)中妓美,下次再次進(jìn)入時(shí)從本地加載進(jìn)度,使得玩家可以繼續(xù)上次的游戲繼續(xù)開始玄帕,這里我們就以 使命召喚 這款游戲?yàn)槔?jiǎn)單演示備忘錄模式部脚。
游戲模型:
備忘錄類:
備忘錄管理類:
client: