Design Patterns
备忘录模式
河南理工大学
大纲
备忘录模式概述
备忘录模式的结构与实现
备忘录模式的应用实例
实现多次撤销
备忘录模式的优缺点与适用环境
备忘录模式概述
备忘录模式——软件中的“后悔药”——撤销(Undo)
备忘录模式概述
分析
通过使用备忘录模式可以让系统恢复到某一特定的历史状态
首先保存软件系统的历史状态,当用户需要取消错误操作并且返回到某个历史状态时,可以取出事先保存的历史状态来覆盖当前状态
备忘录模式概述
备忘录模式的定义
对象行为型模式
备忘录模式:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样就可以在以后将对象恢复到原先保存的状态。
Memento Pattern: Without violating encapsulation, capture and externalize an object's internal state so that the object can be restored to this state later.
备忘录模式概述
备忘录模式的定义
别名为标记(Token)模式
提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤
当前在很多软件所提供的撤销(Undo)操作中就使用了备忘录模式
备忘录模式的结构与实现
备忘录模式的结构
备忘录模式的结构与实现
备忘录模式的结构
备忘录模式包含以下3个角色:
Originator(原发器)
Memento(备忘录)
Caretaker(负责人)
备忘录模式的结构与实现
备忘录模式的实现
典型的原发器类代码:
namespace MementoSample
{
public class Originator
{
private string state;
public Originator(string state)
{
= state;
}
// 创建一个备忘录对象
internal Memento CreateMemento()
{
return new Memento(this);
}
// 根据备忘录对象恢复原发器状态
internal void RestoreMemento(Memento m)
{
state = ();
}
public void SetState(string state)
{
=state;
}
public string GetState()
{
return ;
}
}
}
备忘录模式的结构与实现
备忘录模式的实现
典型的备忘录类代码:
namespace MementoSample
{
//备忘录类,默认可见性,在程序集内可见
internal class Memento
{
private string state;
internal Memento(Originator o)
{
state = ();
}
internal void SetState(string state)
{
= state;
}
internal string GetState()
{
return ;
}
}
}
备忘录模式 来自淘豆网m.daumloan.com转载请标明出处.