Memento 备忘录模式也属于“状态变化”模式,它是一个小模式,在今天来看有些过时,当今已经很少使用当前模式实现需求,思想却不变(信息隐藏),目前多使用序列化方案来实现。本系列所介绍的模式,有一些随着时代的变化,有一些过时。
1. 动机( Motivation)
- 在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要求程序能够回溯到对象之前处于某个点时的状态。如果使用一些公有接口来让其他对象得到对象的状态,便会暴露对象的细节实现。
Memento 备忘录模式主要解决维持封装性的前提下,怎么样去实现对象的状态
- 如何实现对象状态的良好保存与恢复?但同时又不会因此而破坏对象本身的封装性
2. 模式定义
在不破坏(Originator)封装性的前提下,捕获一个对象的内部状态(Memento mem = orginator.createMomento()),并在该对象之外保存
这个状态。这样以后就可以将该对象恢复到原先保存的状态。
----《设计模式》GoF
3. Memento 备忘录模式代码实现
假设下面的对象是需要保存状态的对象&