設計模式16 Memento設計模式

2021-06-06 01:58:59 字數 888 閱讀 4624

memento備忘錄設計模式是乙個儲存另外乙個物件內部狀態拷貝的物件,這樣以後就可以將該物件恢復到以前儲存的狀態。memento備忘錄設計模式的結構如下:

memento備忘錄設計模式有以下3個重要角色:

originator:需要儲存內部狀態的物件。

caretaker:為originator儲存並恢復狀態的物件。

memento:存放originator內部狀態的物件,由originator進行讀寫,並且caretaker進行維護。

memento備忘錄設計模式例子**如下:

// memento

class memento

public string getstate()

}// caretaker

class caretaker

public memento getmemento()

return null;}}

// originator

public class originator

public void setstate()

public string getstate()

public memento creatememento(string state)

public static void main(string args)

}

程式執行結果:

currentoriginator state= state2,restore state= state1

memento備忘錄設計模式常用於文字編輯軟體/ide整合開發環境中的撤銷和恢復操作。

設計模式16 Memento設計模式

memento備忘錄設計模式是乙個儲存另外乙個物件內部狀態拷貝的物件,這樣以後就可以將該物件恢復到以前儲存的狀態。memento備忘錄設計模式的結構如下 memento備忘錄設計模式有以下3個重要角色 originator 需要儲存內部狀態的物件。caretaker 為originator儲存並恢復...

設計模式 備忘錄模式(Memento)

主要目的是儲存乙個物件的某個狀態,以便在適當的時候恢復物件,個人覺得叫備份模式更形象些,通俗的講下 假設有原始類a,a中有各種屬性,a可以決定需要備份的屬性,備忘錄類b是用來儲存a的一些內部狀態,類c呢,就是乙個用來儲存備忘錄的,且只能儲存,不能修改等操作。original類是原始類,裡面有需要儲存...

設計模式(十八) 狀態變化模式 memento

狀態變化模式包括 state和memento 備忘錄 在元件構建過程中,某些物件的狀態經常面臨變化,如何對這些變化進行有效的管理,又同事維持高層模組的穩定?軟體構建過程中,某些物件狀態轉換過程中,如果想回溯到之前的狀態,又不想暴露實現細節。乙個程式有在每個時候擁有的序列號都是不同的,代表他這個時候的...