CurrentConditionsDisplay.java
package com.designpatterns.behavioral.observer.classic;
import java.util.Locale;
public class CurrentConditionsDisplay implements WeatherObserver {
private double lastTemperatureCelsius;
private double lastHumidityPercent;
@Override
public void update(double temperatureCelsius, double humidityPercent) {
this.lastTemperatureCelsius = temperatureCelsius;
this.lastHumidityPercent = humidityPercent;
}
public String currentConditions() {
// Locale.ROOT on purpose: this is a display string used in tests/output, and must not
// vary with the JVM's default locale (e.g. pt-BR formats decimals with a comma).
return String.format(Locale.ROOT, "Temp: %.1fC, Humidity: %.1f%%", lastTemperatureCelsius, lastHumidityPercent);
}
}