标签:float play 不能 fun tis 它的 接口编程 解决 private
甲方提供了一个气象站的接口,气象站上面装有:温度感应装置、湿度感应装置、气压感应装置。
现在我们是乙方,需要设计一个 WeatherData 对象,从气象站获取数据,并且利用这些数据,更新三个布告板(当前状况、气象统计、天气预报)。
通过简单地分析,我们可以很快确定一套解决方案:
WeatherData 提供一个 measurementsChanged() 方法,当这个方法被调用了,去实时获取气象站的数据,然后更新到三个布告板上。
public class BadWeatherData { @Getter private float temperature; @Getter private float humidity; @Getter private float pressure; private CurrentConditionsDisplay currentConditionDisplay; private StatisticsDisplay statisticsDisplay; private ForecastDisplay forecastDisplay; public BadWeatherData() { // some initialized function for displays } // We don‘t care how it be called, we only know is when it is called, we will update displays. public void measurementsChanged() { // We don‘t care how it gets data float temperature = getTemperature(); float humidity = getHumidity(); float pressure = getPressure(); currentConditionDisplay.update(temperature, humidity, pressure); statisticsDisplay.update(temperature, humidity, pressure); forecastDisplay.update(temperature, humidity, pressure); } }
显然,这是一个扩展性很差的解决方案,它有如下问题:
定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
标签:float play 不能 fun tis 它的 接口编程 解决 private
原文地址:https://www.cnblogs.com/jing-an-feng-shao/p/10968609.html