什么是备忘录模式
来自大话:在不破坏封装性的前提下,捕获对象的内部状态,并且在对象之外保存这个状态。这样以后可以恢复到这个状态。”
解释下:备忘录模式就是保存一个状态,或者很多东西。但是不能破坏封装性的前提下去保存。并且这个保存的东西是在这个对象之外。
可以看出这个模式有两个重点
- 不破坏封装性
这点尤其重要,保存的状态或者数据。不能通过外部改变。如果外部随便改变那么这叫狗屁备忘录啊。你游戏存档的信息,外部也改变不了吧。
- 保存在对象之外
这一点是为了单一职责原则。
所以我们再来看类图
Originator:系统的当前状态 memento:存档的具体信息类。 Caretaker:负责保存memento
可以看到需要存档的时候就调用 Originator.createMenro();方法然后赋值给Caretaker保存好当前的备份信息。
需要回档的时候调用setMemento方法把第三方存好的备份信息赋值给Originator这个类就行了。这就是整个一个备份的过程.
总结
这个模式用的最多的场景应该是游戏中了。因为游戏中状态位多。在web场景中用的比较少,在撤销时可能会用到。
注意:本文归作者所有,未经作者允许,不得转载