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

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


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


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


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

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值