日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1.备忘录模式

發(fā)布時間:2024/9/27 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.备忘录模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1備忘錄模式的核心內(nèi)容是:

A:包含一個存儲記錄的結(jié)構(gòu)(C++中用類這種結(jié)構(gòu)來存儲)

B:包含產(chǎn)生記錄的類。

C:使用一種數(shù)據(jù)結(jié)構(gòu)來存儲操作的記錄。

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

3備忘錄模式具體描述

備忘錄模式:備忘錄對象是一個用來存儲另外一個對象內(nèi)部狀態(tài)的快照的對象。

備忘錄模式的用意是在不破壞封裝的條件下,將一個對象的狀態(tài)捉住,

并外部化,存儲起來,從而可以在將來合適的時候把這個對象還原到存儲起來的狀態(tài)。

?

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

不然MM發(fā)現(xiàn)了會不高興的哦,幸虧我有個備忘錄,

剛才與哪個MM說了什么話我都拷貝一份放到備忘錄里面保存,

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

?

設(shè)計(jì)需要回放的軟件,記錄一下事物的狀態(tài)。數(shù)據(jù)庫備份,文檔的編譯,撤銷,恢復(fù)

?

設(shè)計(jì)備忘錄三大步驟

A設(shè)計(jì)記錄的節(jié)點(diǎn),存儲記錄,//記錄鼠標(biāo),鍵盤的狀態(tài)

B設(shè)計(jì)記錄的存儲,vector,listmap,set,鏈表,圖,數(shù)組,樹

C操作記錄的類,記錄節(jié)點(diǎn)狀態(tài),設(shè)置節(jié)點(diǎn)狀態(tài),顯示狀態(tài),0.1秒記錄一下

4.備忘錄模式類圖

5.代碼:

#include <iostream>

#include <string>

#include <vector>

using namespace std;

//備忘錄模式:備忘錄對象是一個用來存儲另外一個對象內(nèi)部狀態(tài)的快照的對象。

//備忘錄模式的用意是在不破壞封裝的條件下,將一個對象的狀態(tài)捉住,

//并外部化,存儲起來,從而可以在將來合適的時候把這個對象還原到存儲起來的狀態(tài)。

?

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

//,不然MM發(fā)現(xiàn)了會不高興的哦,幸虧我有個備忘錄,

//剛才與哪個MM說了什么話我都拷貝一份放到備忘錄里面保存,

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

?

//設(shè)計(jì)需要回放的軟件,記錄一下事物的狀態(tài)。數(shù)據(jù)庫備份,文檔的編譯,撤銷,恢復(fù)

?

//設(shè)計(jì)備忘錄三大步驟

//1.設(shè)計(jì)記錄的節(jié)點(diǎn),存儲記錄,//記錄鼠標(biāo),鍵盤的狀態(tài)

//2.設(shè)計(jì)記錄的存儲,vector,listmap,set,鏈表,圖,數(shù)組,樹

//3.操作記錄的類,記錄節(jié)點(diǎn)狀態(tài),設(shè)置節(jié)點(diǎn)狀態(tài),顯示狀態(tài),0.1秒記錄一下

?

//備忘錄的節(jié)點(diǎn),下面是記錄的節(jié)點(diǎn),存儲記錄信息

//類作為存儲結(jié)構(gòu)

class Memo

{

public:

??? string state;

??? Memo(string state) //記錄當(dāng)前的狀態(tài)

??? {

??????? this->state = state;

??? }

};

?

//類的包含備忘錄的節(jié)點(diǎn),Originator:表示的是發(fā)起人,起源,起因

//作為操作類

class Originator

{

public:

??? string state;

??? void setMemo(Memo *memo)

??? {

??????? state = memo->state;

??? }

??? Memo *createMemo()

??? {

??????? return new Memo(state);

??? }

??? void show()

??? {

??????? cout << state << endl;

??? }

};

?

//備忘錄的集合,作為存儲結(jié)構(gòu)

class Caretaker

{

public:

??? vector<Memo *> memo;

??? void save(Memo *memo)

??? {

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

??? }

??? Memo *getState(int i)

??? {

??????? return memo[i];

??? }

};

?

int main()

{

??? //操作類

??? Originator *og = new Originator();

??? //存儲結(jié)構(gòu)

??? Caretaker *ct = new Caretaker();

?

??? og->state = "on";

??? og->show();

??? ct->save(og->createMemo());

?

??? og->state = "off";

??? og->show();

??? ct->save(og->createMemo());

?

??? og->state = "middle";

??? og->show();

??? ct->save(og->createMemo());

?

??? og->setMemo(ct->getState(1));

??? og->show();

?

??? og->setMemo(ct->getState(2));

??? og->show();

??? cin.get();

??? return 0;

}

運(yùn)行結(jié)果:



總結(jié)

以上是生活随笔為你收集整理的1.备忘录模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。