【设计模式】Java设计模式第一课之观察者模式

我们可以用一个生活中的情景来认识一下观察者模式.


在这个时代,可能只有我们家里的老年人还保留着每天看报纸的习惯.报社负责生产内容,把它们组织到一张报纸上,每天进行印刷,然后送到每一个花钱订阅了报纸的用户家里.这样老人家就可以浏览一下每天发生的事情了.


这就是观察者模式最贴切的比喻.订阅者和报社是一对多的关系,每天只要更新了内容,就会统一把报纸送到用户的手里,当然,如果你不想订阅了,也可以退订.报社不知道你的状态,也不会关心你到底有没有看报纸,它的职责就是每天准时的把报纸送到你的家里.


下面是我看书的时候,总结的关于观察者模式的几个要点:

  • 设计原则:为了交互对象之间的松耦合而努力.
  • 定义了对象之间的一对多依赖,这样一来,当一个对象发生了改变时,它的所有依赖者都会受到通知并自动更新.
  • 观察者模式提供了一种对象设计,让可观察者和观察者之间松耦合.
  • 可观察者是有状态的
  • 可观察者用一个共同的接口来更新观察者
  • 可观察者不知道观察者的细节,只知道观察者实现了观察者接口
  • 松耦合的设计之所以能让我们建立有弹性的OO系统,能够应对变化,是因为对象之间的互相依赖降到了最低.
  • Java有内置的观察者模式,在Java.util包中的Observer接口和Observable类,可以使用推和拉两种方式
  • 要认识到Java内置的观察者模式的局限性,因为Observer是一个类,而不是一个接口
  • MVC模式是观察者模式的最佳代表
  • 观察者模式也被应用于JavaBeans,RMI中.



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。