設計模式 - 備忘錄模式
一、概述
- 備忘錄:在不破壞封裝性的前提下,捕獲一個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可以將該物件恢復到原先儲存的狀態了。
二、基本程式碼
//呼叫者
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);
}
}
//備忘錄類
class Memento
{
private string state;
public Memento(string state)
{
this.state = state;
}
public string State
{
get { return state;}
}
}
//管理者類
class Caretaler
{
private Memento memento;
public Memento Memento
{
get { return memento; }
set { memento = value; }
}
}
//客戶端
static void Main(string[] args)
{
//1.需要備份的物件
Originator o = new Originator();
//2.設定物件的狀態
o.State = "On";
o.Show();
//3.建立備份的管理者
Caretaler c = new Caretaler();
//4.設定管理者的備份物件
c.Memento = o.CreateMemento();
//5.重新設定物件的狀態
o.State = "off";
o.Show();
//6.恢復備份
o.SetMemento(c.Memento);
o.Show();
Console.Read();
}
- 以上程式碼將儲存的細節封裝在了 Memento 中,如果修改儲存的細節也不會影響到客戶端。
相關文章
- 設計模式----備忘錄模式設計模式
- 設計模式(十九):備忘錄模式設計模式
- 設計模式之備忘錄模式設計模式
- 簡說設計模式——備忘錄模式設計模式
- 設計模式 - 備忘錄模式 ( Memento )設計模式
- 極簡設計模式-備忘錄模式設計模式
- GoLang設計模式11 - 備忘錄模式Golang設計模式
- Python設計模式-備忘錄模式Python設計模式
- 大話設計模式—備忘錄模式設計模式
- 設計模式漫談之備忘錄模式設計模式
- java設計模式-備忘錄模式(Memento)Java設計模式
- 23種設計模式之備忘錄模式設計模式
- 折騰Java設計模式之備忘錄模式Java設計模式
- 設計模式 | 備忘錄模式及典型應用設計模式
- 19.java設計模式之備忘錄模式Java設計模式
- iOS設計模式之四:備忘錄模式和命令模式iOS設計模式
- 備忘錄設計模式知識概括設計模式
- 行為型設計模式 - 備忘錄模式詳解設計模式
- C#設計模式系列:備忘錄模式(Memento)C#設計模式
- 設計模式--備忘錄模式Memento(行為型)設計模式
- JAVA設計模式之 備忘錄模式【Memento Pattern】Java設計模式
- 備忘錄模式模式
- 設計模式(Swift) - 2.單例模式、備忘錄模式和策略模式設計模式Swift單例
- Rust語言之GoF設計模式:備忘錄Memento模式RustGo設計模式
- 設計模式的征途—20.備忘錄(Memento)模式設計模式
- 無廢話設計模式(16)行為型模式--備忘錄模式設計模式
- Swift 中的設計模式 #2 觀察者模式與備忘錄模式Swift設計模式
- 抽絲剝繭——備忘錄設計模式設計模式
- 《設計模式七》備忘錄、模板方法、狀態模式及設計模式設計總結設計模式
- php設計模式備忘PHP設計模式
- 我學設計模式 之 備忘模式設計模式
- 軟體設計模式學習(二十二)備忘錄模式設計模式
- 深入淺出Java設計之備忘錄模式Java模式
- 行為型模式:備忘錄模式模式
- Java備忘錄模式(Memento模式)Java模式
- Java進階篇設計模式之十二 ---- 備忘錄模式和狀態模式Java設計模式
- 設計模式學習筆記(十八)備忘錄模式及其實現設計模式筆記
- Net設計模式例項之備忘錄模式(Memento Pattern)(2)設計模式