说明
某实验室欲建立一个实验室环境监测系统,能够显示实验室的温度、湿度以及洁净度等环境数据。当获取到最新的环境测量数据时,显示的环境数据能够更新。
现在采用观察者(Observer)模式来开发该系统,其类图如下图所示。
Java代码
import java.util.*; //把util这个包下的全部类导入到程序中
//*表示的是通配符,包括util的所有类
interface Observer {
//定义算法的公共接口Observer
public void update(float temp, float humidity, float cleanness);
}
interface Subject {
//定义算法的公共接口Subject
public void registerObserver(Observer o); //注册对目标感兴趣的观察者
public void removeObserver(Observer o); //删除观察者
public void notifyObservers(); //当目标发生变化时通知观察者
}
class EnvironmentData implements Subject {
private ArrayList observers; //对目标EnvironmentData感兴趣的观察者由向量observers表示
private float temperature