备忘录模式
2019-06-19 本文已影响0人
lantern王
介绍:
备忘录模式是一种欣慰模式,该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态,这有点像我们平时说的“后悔药”。备忘录模式实现的方式需要保证被保存的对象状态不能被对象从外部访问,目的是为了保护好被保存的这些对象状态的完整性以及内部实现不向外暴露。
定义:
在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样,以后就可将该对象恢复到原先保存的状态。
角色介绍:
Originator: 负责创建一个备忘录,可以记录、恢复自身的内部状态。同时Originator还可以根据需要决定Memento存贮自身的哪些内部状态。
Memento:备忘录角色,用于储存Originator的内部状态,并且可以防止Originator以外的对象访问Memento。
Caretaker:负责储存备忘录,不能对备忘录的内容进行操作和访问,只能够将备忘录传递给其他对象。
简单示例:
对备忘录模式来说,Activity的onSaveInstanceState就是用于保存activity的状态。同时比较贴切的场景应该是游戏中的存档功能,该功能是将游戏进度存贮到本地文件系统或者数据库中,下次再次进入时从本地加载进度,使得玩家可以继续上次的游戏继续开始,这里我们就以 使命召唤 这款游戏为例简单演示备忘录模式。
游戏模型:
image.png
备忘录类:
image.png
备忘录管理类:
image.png
client:
image.png
image.png