一、了解观察者模式
1.1 什么是观察者模式
观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象状态改变时,它的所有依赖者都会收到通知并自动更新。
典型的问题比如报社,只要你是他们的订户,他们每次有新报纸出版时,就会向你这送来,当你不想要看报纸时,取消订阅,他们就不会再给你送报纸。
1.2 观察者模式组成结构
抽象主题 (Subject):抽象主题角色把所有观察者对象保存在一个集合里,每个主题都可以有任意数量的观察者,抽象主题提供一个接口,可以增加和删除观察者对象。
具体主题 (ConcreteSubject):该角色将有关状态存入具体观察者对象,在具体主题的内部状态发生改变时,给所有注册过的观察者发送通知。
抽象观察者 (Observer):是观察者的抽象类,它定义了一个更新接口,使得在得到主题更改通知时更新自己。
具体观察者 (ConcrereObserver):实现抽象观察者定义的更新接口,以便在得到主题更改通知时更新自身的状态。
1.3 观察者模式 UML 图解
二、观察者模式具体应用
2.1 问题描述
气象观测站系统:该系统中包含三部分,分别是气象站 (获取实际气象数据的物理装置)、WeatherData 对象 (追踪气象站的数据,并更新布告板) 和布告板 (显示天气状况给用户看,布告板共有两个,分别显示当前的温度以及对天气进行预告)。
评论列表(0条)