阅读下列说明和C++代码。将应填入(n)处的字句写在答题纸的对应栏内。【说明】在软件系统中,通常不会 - JRS直播

软题库 学习课程
当前位置:JRS直播 >> 在线考试中心 >> 软件设计师题库 >> 试题查看
试卷年份2022年上半年
试题题型【分析简答题】
试题内容

阅读下列说明和C++代码。将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
在软件系统中,通常不会给用户提供取消、不确定或者错误操作的选择,允许将系统恢复到原先的状态。现使用备忘录(Memento)模式实现该要求,得到如图5-1所示的类图。Memento 包含了要被恢复的状态。Originator创建并在Memento中存储状态。Caretaker负责从Memento中恢复状态。





图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;
}

查看答案

相关试题



更多试题