// AvgTemp.java
public abstract class AvgTemp {
public void notifyReceived ( String eventName, Object arg) {
if (eventName.equals("temperatureMeasurement"))
{
onNewtemperatureMeasurement((TempStruct) arg);
}
}
public abstract void onNewtemperatureMeasurement(TempStruct tempStruct);
}
// MyAvgTempImpl. java
public class MyAvgTempImpl extends AvgTemp {
@Override
public void onNewtemperatureMeasurement(TempStruct tempstruct) {
//TODO : Need to write a code of calculating Average Temperature.
}
}
我的问题是``当来自许多传感器(温度数据的生产者)的通知时,如何编写计算平均温度的代码(在MyAvgTempImpl.java中)?“。
答案 0 :(得分:1)
如果来自许多传感器的信息来自一个单独的线程,您只需将它们加总,然后除以接收的样本数。
另一方面,如果来自多个传感器的信息来自多个线程,那么您将不得不使用:
或
或
我不是Java程序员所以我不能告诉你这是如何在Java中完成的,但至少你有一般的想法。
答案 1 :(得分:0)
在你的MyAvgTempImpl类中,添加两个字段:int count,double sum
在onNewtemperatureMeasurement上的方法中:do count ++&总和+ = sensedTemperatureValue;
为您的类MyAvgTempImpl添加另一个方法:
double getAverage() {
return sum/count;
}