观察者

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方法传递任何数据,数据是在观察者对象收到更新消息后,查询被观察者对象得到的.
在数据量比较大时推模型更合适。
数据量比较小时拉模型比较合适.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值