观察者模式上篇
观察者模式上篇
观察者模式原理:
大家好,欢迎来到污污弹公司,最近啊,污污弹接到气象站的外包项目。
功能比较简单:
要对外提供天气接口(温度、气压、湿度)需要实时通知第三方;
还需要实时在市中心公告栏上发布天气情况。
司小司接到任务开始动手干了。根据Java面向对象特性分析后得到如下信息:
天气对象:WeatherData
公告板对象:CurrentConditions
天气更新时候,调用天气对象的dataChange方法,得到数据后,然后将数据通过display方法展示出来。
根据上面信息,我们可以创建以下两个类:
天气对象:
@Data
public class WeatherDataOO {
public WeatherDataOO {}
public WeatherDataOO( CurrentCoditionOO currentCoditionOO){
this.currentCoditionOO = currentCoditionOO;
}
/**
* 温度
*/
private float temperatrue;
/**
* 气压
*/
private float pressure;
/**
* 湿度
*/
private float humidity;
/**
* 公告板对象
*/
private CurrentCoditionOO currentCoditionOO;
/**
* 天气变化时候方法
*/
public void dataChange{
currentCoditionOO.update(this.getTemperatrue,this.getPressure,this.getHumidity);
}
/**
* 模拟气象站数据
*/
public void setData(float temperatrue,float pressure,float humidity){
this.temperatrue = temperatrue;
this.pressure = pressure;
this.humidity = humidity;
dataChange;
}
}
公布栏对象具体内容如下
原创不易,完成人机校验,阅读全文