软件设计师案例分析当天每日一练试题地址:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4
往期软件设计师每日一练试题汇总:www.cnitpm.com/class/27/e4_1.html
软件设计师案例分析每日一练试题(2024/12/21)在线测试:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2024/12/21
点击查看:更多软件设计师习题与指导
软件设计师案例分析每日一练试题内容(2024/12/21)
阅读下列说明和Java代码,将应填入 (n)处的字句卸载答题纸的对应栏内.
【说明】
某实验室欲建立一个实验室环境监测系统,能够显示实验室的温度、湿度以及洁净度等环境数据。当获取到最新的环境测量数据时,显示的环境数据能够更新。
现在采用观察者(Observer)模式来开发该系统。观察者模式的类图如图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(); //当主题发生变化时通知观察者
}
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);
}
}
信管网试题答案与解析:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2024/12/21
信管网考友试题答案分享:
信管网5327************:
(1) subject
(2) observer.update(this.temperature,this.humidity,this.cleanness)
(3) this.notifyobserver()
(4) this.measurementschange()
(5) observer
(6) this.envdate.registerobserver(this)
信管网cnit**************:
1.subject
2.observer.update(temperature,humidity,cleanness)
3.this.notifyobservers()
4.display()
5.observer
6.notifyobservers()
信管网cnit**************:
(1):subject;
(2):observer.update(this.temperature,this.humidity,this.cleanners)
(3):notiftivservers()
(4):measurementschanged()
(5)observer
(6)envdata.
信管网试题答案与解析:
www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2024/12/21