軟件設計師案例分析當天每日一練試題地址:www.ichunya.com/exam/ExamDayAL.aspx?t1=4
往期軟件設計師每日一練試題匯總:www.ichunya.com/class/27/e4_1.html
軟件設計師案例分析每日一練試題(2024/3/25)在線測試:www.ichunya.com/exam/ExamDayAL.aspx?t1=4&day=2024/3/25
點擊查看:更多軟件設計師習題與指導
軟件設計師案例分析每日一練試題內容(2024/3/25)
試題六(共15分)
閱讀下列說明和Java代碼,將應填入(n)處的字句寫在答題紙的對應欄內。
【說明】
在軟件系統(tǒng)中,通常都會給用戶提供取消、不確定或者錯誤操作的選擇,允許將系統(tǒng)恢復到原先的狀態(tài)?,F(xiàn)使用備忘錄(Memento)模式實現(xiàn)該要求,得到如圖6-1所示的類圖。Memento包含了要被恢復的狀態(tài)。Originator創(chuàng)建并在Memento中存儲狀態(tài)。Caretaker負責從Memento中恢復狀態(tài)。

【Uava代碼】
import java.util.*;
class Memento {
private String state;
public Memento(String state){this.state=state;}
public String getState(){return state;}
}
class Originator{
private String state;
public void setState(String state){this.state=state;}
public String getState(){ retum state;}
public Memento saveStateToMemento(){
Return (1)
}
public void getStateFromMemento(Memento Memento){
state =(2)
}
class CareTaker
Public(3)
mementoLstadd如aney
}
public (4)
return memensoLint get (imdat
}
}
class MementoPaneDems{
pubic static voiid main(Stringf]
Ohgiator aniginutor-te Origmrfy
CareThker careTukeznwCmiie)
aniginuntorseStte(State1#)
orginxtorsCSuat(State2#);
careThiket add_(5)
oiginatoseSated"(State 3")
careTaker add (6)_
originutor_setState(State#4)
(1) new Memento(state)
(2) Memento.getState()
(3) void add(Memento state)
(4) Memento get(int index)
(5) care Taker.add(originator.saveState ToMemento()
(6) care Taker.add(originator.saveState ToMemento()
信管網試題答案與解析:www.ichunya.com/st/5222116487.html
信管網考友試題答案分享:
信管網試題答案與解析:
www.ichunya.com/st/5222116487.html