# 备忘录模式 ## 优点 * 它提供了一种状态恢复机制,使得用户可以方便回到特定的历史步骤,当前的状态或者存在问题时,可以使用暂时存储其他的备忘录将状态复原. * 备忘录实现了对信息的封装,一个备忘录对象是一种原发器对象状态的表示,不会被其他代码所改动。备忘录保持了原发器的状态,采用列表、堆栈等集合来存储备忘录对象可以实现多次撤销操作. ## 缺点 * 资源消耗过大,如果需要保存的原发器类的成员变量太多,就不可避免需要占用大量的存储空间,每保存一次对象都是需要消耗一定的系统资源. ## 适用场景 * 保存一个对象在某一个时刻的全部状态或部分状态,这样以后需要恢复到先前的状态,实现撤销操作 * 防止外界对象破会一个对象历史状态的封装性,避免将对象历史状态的实现细节暴露给外界对象.