设计模式-观察者模式

观察者模式

定义:定义了对象之间的一对多依赖,让多个观察者监听同一个对象的行为,当该行为发生的时候,则做出一定的动作

天气变化了,发出提示

天气模型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Weather {
private String address;
private Integer temperature;
private List<Observer> observers;
public void addObserver(Observer observer){
observers.add(observer);
}
public void removeObserver(Observer observer){
observers.remove(observer);
}
public void changeTemperature(int temperature){
this.temperature=temperature;
for (Observer observer : observers) {
observer.update(temperature);
}
}
}

观察者的接口

1
2
3
public interface Observer {
void update(Integer temperature);
}

邮件的观察者

1
2
3
4
5
6
7
public class EmailObserver implements Observer {

@Override
public void update(Integer temperature) {
System.out.println("发邮件告诉用户天气改变了,变为了"+temperature);
}
}

短信观察者

1
2
3
4
5
6
public class MsgObserver implements Observer{
@Override
public void update(Integer temperature) {
System.out.println("发短信告诉用户气温改变了,变为了"+temperature);
}
}
给作者买杯咖啡吧~~~