《Head First设计模式》之观察者模式
讲述观察者模式之前,来看看原书的一个“气象观测站”的应用。该应用主要是由气象站提供给第三方客户气象相关数据,由第三方在相关展示面板上展示。
目前我们知道些什么?
来看看上面的错误实例究竟错在哪里了?
接下来该认识一下本文的主角【观察者模式】
观察者模式的定义:
那我们可以继续之前气象站的相关设计了:
对我们所设计的进行一下具体实现吧!
定义 Subject、Observer和DisplayElement接口
对Subject接口的实现:
简历气象布告板(实现Observer和DisplayElement接口):
可以进行测试了。。。
其实java也有内置的观察者模式,下面来做一下简单介绍;
尝试下使用JDK内置的观察者模式来实现气象站的应用:
然后实现气象的展示面板:
这就完成了使用JDK内置观察者模式来实现气象站应用,这边就不做测试了。
但是在实际的开发中,其实JDK内置的观察者模式还是存在很多问题,导致使用的弹性不够高。
最后总结一下本文的要点: