首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

备忘录形式(Memento)

2013-09-28 
备忘录模式(Memento)@@@模式定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个

备忘录模式(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();}}

@@@模式的实现:
引入一个存储状态的备忘录对象,让它作为原发器的私有内部类。
引入一个备忘录对象的窄接口,和外部通信。

@@@模式的优点:
(1)更好的封装性;
(2)简化了原发器;

@@@模式的缺点:
可能会导致高开销;

@@@模式的本质:
保存和恢复内部状态。

@@@模式体现的设计原则:
NA


热点排行