1備忘錄模式的核心内容是:
a:包含一個存儲記錄的結構(c++中用類這種結構來存儲)
b:包含産生記錄的類。
c:使用一種資料結構來存儲操作的記錄。
2備忘錄模式的作用是回放所做的操作
3備忘錄模式具體描述
備忘錄模式:備忘錄對象是一個用來存儲另外一個對象内部狀态的快照的對象。
備忘錄模式的用意是在不破壞封裝的條件下,将一個對象的狀态捉住,
并外部化,存儲起來,進而可以在将來合适的時候把這個對象還原到存儲起來的狀态。
同時跟幾個mm聊天時,一定要記清楚剛才跟mm說了些什麼話
不然mm發現了會不高興的哦,幸虧我有個備忘錄,
剛才與哪個mm說了什麼話我都拷貝一份放到備忘錄裡面儲存,
這樣可以随時察看以前的記錄啦。
設計需要回放的軟體,記錄一下事物的狀态。資料庫備份,文檔的編譯,撤銷,恢複
設計備忘錄三大步驟
a設計記錄的節點,存儲記錄,//記錄滑鼠,鍵盤的狀态
b設計記錄的存儲,vector,list,map,set,連結清單,圖,數組,樹
c操作記錄的類,記錄節點狀态,設定節點狀态,顯示狀态,0.1秒記錄一下
4.備忘錄模式類圖
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;
運作結果: