IT评测·应用市场-qidao123.com
标题:
设计模式-备忘录
[打印本页]
作者:
老婆出轨
时间:
2024-8-5 03:52
标题:
设计模式-备忘录
备忘录(Memento)设计模式是为了保存对象当前状态,并在必要的时候恢复到之前保存的状态。以下是一个简单的C#备忘录模式的实现:
// Originator 类,负责创建和恢复备忘录
class Originator
{
private string state;
public string State
{
get { return state; }
set { state = value; }
}
public Memento CreateMemento()
{
// 创建备忘录,保存状态
return (new Memento(state));
}
public void SetMemento(Memento memento)
{
// 恢复状态
state = memento.State;
}
public void Show()
{
Console.WriteLine("State = " + state);
}
}
// 备忘录 Memento 类,负责保存 Originator 状态
class Memento
{
private string state;
public Memento(string state)
{
this.state = state;
}
public string State
{
get { return state; }
}
}
// 管理者 Caretaker 类,负责保存备忘录,不应该对备忘录的内容进行操作和暴露
class Caretaker
{
private Memento memento;
public Memento Memento
{
get { return memento; }
set { memento = value; }
}
}
// 客户端代码
class Program
{
static void Main(string[] args)
{
// 创建发起人对象
Originator originator = new Originator();
originator.State = "State #1";
originator.Show();
// 保存状态
Caretaker caretaker = new Caretaker();
caretaker.Memento = originator.CreateMemento();
// 改变 originator 状态
originator.State = "State #2";
originator.Show();
// 恢复状态
originator.SetMemento(caretaker.Memento);
originator.Show();
Console.ReadKey();
}
}
复制代码
在这个例子中,Originator类负责保存和恢复状态,Memento类负责保存状态,而Caretaker类负责保存Memento对象,不应该对其举行利用。客户端代码演示了如何使用这些类来保存和恢复对象状态。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4