备忘录模式(Memento)
@@@模式定义:
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。
这样以后就可以将该对象恢复到原先保存的状态。
@@@练习示例:
仿真系统
@@@示例代码:
\pattern\FlowAMockMemento.java
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
package user;import pattern.FlowAMementoCareTaker;import pattern.FlowAMock;import pattern.FlowAMockMemento;public class Client {public static void main(String[] args) { // 创建模拟运行流程的对象FlowAMock mock = new FlowAMock("TestFlow");// 运行流程的第一个阶段mock.runPhaseOne();// 创建一个管理者FlowAMementoCareTaker careTaker = new FlowAMementoCareTaker();// 创建此时对象的备忘录对象,并保存到管理者对象那里,后面要用FlowAMockMemento memento = mock.createMemento();careTaker.saveMemento(memento);// 按照方案一来运行流程的后半部分mock.schema1();// 从管理者获取备忘录对象,然后设置回去// 让模拟运行流程的对象自己恢复自己的内部状态mock.setMemento(careTaker.retriveMemento());// mock.setMemento(memento);// 按照方案二来运行流程的后半部分mock.schema2();}}