軟件設(shè)計(jì)師案例分析當(dāng)天每日一練試題地址:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4
往期軟件設(shè)計(jì)師每日一練試題匯總:m.xiexiliangjiufa.com/class/27/e4_1.html
軟件設(shè)計(jì)師案例分析每日一練試題(2022/7/5)在線測試:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4&day=2022/7/5
點(diǎn)擊查看:更多軟件設(shè)計(jì)師習(xí)題與指導(dǎo)
軟件設(shè)計(jì)師案例分析每日一練試題內(nèi)容(2022/7/5)
閱讀下列說明和Java代碼,將應(yīng)填入 (n)處的字句卸載答題紙的對應(yīng)欄內(nèi).
【說明】
某實(shí)驗(yàn)室欲建立一個(gè)實(shí)驗(yàn)室環(huán)境監(jiān)測系統(tǒng),能夠顯示實(shí)驗(yàn)室的溫度、濕度以及潔凈度等環(huán)境數(shù)據(jù)。當(dāng)獲取到最新的環(huán)境測量數(shù)據(jù)時(shí),顯示的環(huán)境數(shù)據(jù)能夠更新。
現(xiàn)在采用觀察者(Observer)模式來開發(fā)該系統(tǒng)。觀察者模式的類圖如圖6-1所示。
【Java代碼】
import java.util.*;
interface Observer {
public void update(float temp, float humidity, float cleanness);
}
interface Subject {
public void registerObserver(Observer o); //注冊對主題感興趣的觀察者
public void removeObserver(Observer o); //刪除觀察者
public void notifyObservers(); //當(dāng)主題發(fā)生變化時(shí)通知觀察者
}
class EnvironmentData implements (1) {
private ArrayList observers;
private float temperature, humidity, cleanness;
public EnvironmentData() { observers = new ArrayList(); }
public void registerObserver(Observer o) { observers.add(o); }
public void removeObserver(Observer o) { /* 代碼省略 */ }
public void notifyObservers() {
for (int i = 0; i < observers.size(); i++) {
Observer observer = (Observer)observers.get(i);
(2) ;
}
}
public void measurementsChanged() { (3) ; }
public void setMeasurements(float temperature, float humidity, float cleanness) {
this.temperature = temperature;
this.humidity = humidity;
this.cleanness = cleanness;
(4) ;
}
}
class CurrentConditionsDisplay implements (5) {
private float temperature;
private float humidity;
private float cleanness;
private Subject envData;
public CurrentConditionsDisplay(Subject envData) {
this.envData = envData;
(6) ;
}
public void update(float temperature, float humidity, float cleanness) {
this.temperature = temperature;
this.humidity = humidity;
this.cleanness = cleanness;
display();
}
public void display() {/* 代碼省略 */ }
}
class EnvironmentMonitor{
public static void main(String[] args) {
EnvironmentData envData = new EnvironmentData();
CurrentConditionsDisplay currentDisplay = new CnrrentConditionsDisplay(envData);
envData.setMeasurements(80, 65, 30.4f);
}
}
信管網(wǎng)試題答案與解析:m.xiexiliangjiufa.com/st/3814411148.html
信管網(wǎng)考友試題答案分享:
信管網(wǎng)試題答案與解析:
m.xiexiliangjiufa.com/st/3814411148.html