c# 備忘錄模式
更新時間:2012年10月29日 14:07:31 作者:
備忘錄模式:在不破壞封裝的前提下,捕獲一個對象的內(nèi)部狀態(tài),并在這個對象之外的地方保存這個狀態(tài),這樣以后就可將該對象恢復(fù)到原來保存的狀態(tài)了
結(jié)構(gòu)圖:

Memento類:保存狀態(tài)的容器
class Memento
{
public string State { get; set; }
public Memento(string state)
{
this.State = state;
}
}
Caretaker是保存Memento類:
class Caretaker
{
public Memento Memento { get; set; }
}
Originator類就是需要保存狀態(tài)的類:
class Originator
{
public string State { get; set; }
public Memento CreateMemento()
{
return (new Memento(State));
}
public void SetMemento(Memento memento)
{
State = memento.State;
}
public void Show()
{
Console.WriteLine("State:" + State);
}
}
主函數(shù)調(diào)用:
class Program
{
static void Main(string[] args)
{
Originator o = new Originator();
o.State = "On";
o.Show();
Caretaker c = new Caretaker();
c.Memento = o.CreateMemento();
o.State = "off";
o.Show();
o.SetMemento(c.Memento);
o.Show();
Console.ReadKey();
}
}

Memento類:保存狀態(tài)的容器
復(fù)制代碼 代碼如下:
class Memento
{
public string State { get; set; }
public Memento(string state)
{
this.State = state;
}
}
Caretaker是保存Memento類:
復(fù)制代碼 代碼如下:
class Caretaker
{
public Memento Memento { get; set; }
}
Originator類就是需要保存狀態(tài)的類:
復(fù)制代碼 代碼如下:
class Originator
{
public string State { get; set; }
public Memento CreateMemento()
{
return (new Memento(State));
}
public void SetMemento(Memento memento)
{
State = memento.State;
}
public void Show()
{
Console.WriteLine("State:" + State);
}
}
主函數(shù)調(diào)用:
復(fù)制代碼 代碼如下:
class Program
{
static void Main(string[] args)
{
Originator o = new Originator();
o.State = "On";
o.Show();
Caretaker c = new Caretaker();
c.Memento = o.CreateMemento();
o.State = "off";
o.Show();
o.SetMemento(c.Memento);
o.Show();
Console.ReadKey();
}
}
相關(guān)文章
Unity Shader實現(xiàn)圖形繪制(藍天白云大海)
這篇文章主要為大家詳細介紹了Unity Shader實現(xiàn)圖形繪制,藍天白云大海,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-04-04C# 關(guān)于爬取網(wǎng)站數(shù)據(jù)遇到csrf-token的分析與解決
這篇文章主要介紹了C# 關(guān)于爬取網(wǎng)站數(shù)據(jù)遇到csrf-token的分析與解決,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下2021-01-01C#對Word文檔的創(chuàng)建、插入表格、設(shè)置樣式等操作實例
今天小編就為大家分享一篇C#對Word文檔的創(chuàng)建、插入表格、設(shè)置樣式等操作實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05