在实际的应用场景中,通常都会需要保存某一个时刻的状态。然后在需要的时候恢复到这个状态。如windows中的ctr+z,浏览器的
退后,git中的回滚到某一个版本等等。备忘录模式就是为这种应用场景而生的。
备忘录模式,备忘的是什么,是状态,也就是一些值。
java是面向对象的,备忘录在java中的实现通常有三个类,Originator发起者类,Memento备忘录类,Cracker备忘录管理者类。
Originator中有某些属性,memento备忘这些属性的属性值,Cracker来管理memento。就像小明是Originator,他呢,会经常给自己制定目标(即属性),制定目标的同时会写在笔记本Memento中,而笔记本呢会由Cracker即他爸爸来保管。这样过一段时间,他们家会讨论小明的目标是否真的实现了,如果没有,则继续讲没实现的目标作为小明的目标。
分为单状态的备忘录。多状态的备忘录,以及多份备忘的情况。后两种情况使用的都是用Map去存数据。
文章是对书籍《设计模式之禅》的总结。