`
H_eaven
  • 浏览: 31541 次
  • 性别: Icon_minigender_1
  • 来自: 鲨堡
文章分类
社区版块
存档分类
最新评论

观察者

阅读更多
Observable提供必要的信息.
Observer(Listener)则对Observer所提供的数据做自己感兴趣的处理 .
比如TimeSource提供时间这一数据,TimeSink可以获所得TimeSource提供的时间数据,有人可能要实现数字时钟,另外有人可能想使用所提供的时间实现一个提醒服务。还有人可能想启动每晚备份功能。简而言之,希望一个单一的TimeSource对象能够为多个TimeSink对象提供时间.

Observable与Observer关系,如果1 : 1则可以做成依赖关系,  如果1 : n 则在Observable 内保存一个Observer的集合。
当然也可以利用第三个类来建立这二者的关系.Tomcat的Session与SessionListener就是利用第三个类建立二者的关系.

Observer的推模型和拉模型 。
推模型是通过把数据传给 notify和update方法从而把数据从目标(subject)推给观察者(observer). 
拉模型没有给notify和update方法传递任何数据,数据是在观察者对象收到更新消息后,查询被观察者对象得到的.
在数据量比较大时推模型更合适。
数据量比较小时拉模型比较合适.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics