探索者的羽翼在线观看未删减完整版|人间**未删减版电影在线观看完整版|在线观看国产欧美|青在线视频,色戒电影完整版视频在线观看,芈月传电视剧全集在线观看免费版,奇米影音第四色

軟題庫 學(xué)習(xí)課程
當(dāng)前位置:信管網(wǎng) >> 在線考試中心 >> 軟件設(shè)計師題庫 >> 試題查看
試卷年份2022年上半年
試題題型【分析簡答題】
試題內(nèi)容

閱讀下列說明和C++代碼。將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
在軟件系統(tǒng)中,通常不會給用戶提供取消、不確定或者錯誤操作的選擇,允許將系統(tǒng)恢復(fù)到原先的狀態(tài)?,F(xiàn)使用備忘錄(Memento)模式實現(xiàn)該要求,得到如圖5-1所示的類圖。Memento 包含了要被恢復(fù)的狀態(tài)。Originator創(chuàng)建并在Memento中存儲狀態(tài)。Caretaker負責(zé)從Memento中恢復(fù)狀態(tài)。





圖5-1 類圖
【C++代碼】
#include
#include
#include
using namespace std;
class Memento{
private:
string state;
public:
Memento(string state){
       this->state=state;
}
string getState( ){
       return state;
}
}
class Originator{
private:
string state;
public:
void setState(string state){
       this>sate=state;
}
string getState( ){
       return state;
}
Memento saveStateToMemento( ){
          return (1)
}
void getStateFromMemento(Memento Memento){
       state (2)
}
class CareTaker{
private:
vector mementoList;
pubilc:
void(3){
   mementoList.push back(state)
   (4);return mementoList(index);
}
int mian( ){
Originator*originator=new Originator( );
CareTaker*careTaker=new CareTaker( );
originator->setState("State #1");
originator->setState("State #2");
careTaker->add(_(5)_);
originator->setState("State #3");
careTaker->add((6));
originator->setState("State #4");
cout <<"Current State:"<<"+" <<originator->getState( )<<endl;
originator->getStateFromMemento(careTaker->get(0);
cout<<"First saved State:"<<originator->getStatee( )<<endl;
originator->getStateFromMemento(careTaker->get(1);
cout<<"second save State"<<"+" <<originator>getState( )<<endl;
return 0;
}

查看答案

相關(guān)試題



更多試題