天天看點

1.備忘錄模式

1備忘錄模式的核心内容是:

a:包含一個存儲記錄的結構(c++中用類這種結構來存儲)

b:包含産生記錄的類。

c:使用一種資料結構來存儲操作的記錄。

2備忘錄模式的作用是回放所做的操作

3備忘錄模式具體描述

備忘錄模式:備忘錄對象是一個用來存儲另外一個對象内部狀态的快照的對象。

備忘錄模式的用意是在不破壞封裝的條件下,将一個對象的狀态捉住,

并外部化,存儲起來,進而可以在将來合适的時候把這個對象還原到存儲起來的狀态。

同時跟幾個mm聊天時,一定要記清楚剛才跟mm說了些什麼話

不然mm發現了會不高興的哦,幸虧我有個備忘錄,

剛才與哪個mm說了什麼話我都拷貝一份放到備忘錄裡面儲存,

這樣可以随時察看以前的記錄啦。

設計需要回放的軟體,記錄一下事物的狀态。資料庫備份,文檔的編譯,撤銷,恢複

設計備忘錄三大步驟

a設計記錄的節點,存儲記錄,//記錄滑鼠,鍵盤的狀态

b設計記錄的存儲,vector,list,map,set,連結清單,圖,數組,樹

c操作記錄的類,記錄節點狀态,設定節點狀态,顯示狀态,0.1秒記錄一下

4.備忘錄模式類圖

1.備忘錄模式

5.代碼:

#include

<iostream>

<string>

<vector>

using

namespace

std;

//備忘錄模式:備忘錄對象是一個用來存儲另外一個對象内部狀态的快照的對象。

//備忘錄模式的用意是在不破壞封裝的條件下,将一個對象的狀态捉住,

//并外部化,存儲起來,進而可以在将來合适的時候把這個對象還原到存儲起來的狀态。

//同時跟幾個mm聊天時,一定要記清楚剛才跟mm說了些什麼話

//,不然mm發現了會不高興的哦,幸虧我有個備忘錄,

//剛才與哪個mm說了什麼話我都拷貝一份放到備忘錄裡面儲存,

//這樣可以随時察看以前的記錄啦。

//設計需要回放的軟體,記錄一下事物的狀态。資料庫備份,文檔的編譯,撤銷,恢複

//設計備忘錄三大步驟

//1.設計記錄的節點,存儲記錄,//記錄滑鼠,鍵盤的狀态

//2.設計記錄的存儲,vector,list,map,set,連結清單,圖,數組,樹

//3.操作記錄的類,記錄節點狀态,設定節點狀态,顯示狀态,0.1秒記錄一下

//備忘錄的節點,下面是記錄的節點,存儲記錄資訊

//類作為存儲結構

class

memo

{

public:

string

state;

memo(string

state)

//記錄目前的狀态

this->state

= state;

}

};

//類的包含備忘錄的節點,originator:表示的是發起人,起源,起因

//作為操作類

originator

void

setmemo(memo

*memo)

state =

memo->state;

memo *creatememo()

return

new

memo(state);

show()

cout <<

state <<

endl;

//備忘錄的集合,作為存儲結構

caretaker

vector<memo

*> memo;

save(memo

(this->memo).push_back(memo);

memo *getstate(int

i)

memo[i];

int

main()

//操作類

originator *og

= new

originator();

//存儲結構

caretaker *ct

caretaker();

og->state

= "on";

og->show();

ct->save(og->creatememo());

= "off";

= "middle";

og->setmemo(ct->getstate(1));

og->setmemo(ct->getstate(2));

cin.get();

return 0;

運作結果:

1.備忘錄模式