您的位置:首页 > 编程语言 > Java开发

设计模式--观察者模式--Java实现

2017-07-11 11:59 513 查看


Subject–>小明–>知道他的观察者(妈妈,女朋友)–>可以添加,删除,通知他的观察者

ConcreteSubject–>天气预报–>各种不同天气状态–>天气改变了也要通知观察者(小明)的妈妈,女朋友

Observer->接口

ConcreatObserver–>小明母亲和女朋友–>重写接口的update方法,使得状态改变了观察者也马上观察得到

——只有我觉得这个观察者模式和那个多线程的同步问题差不多吗

*目标接口 Subject

观察者接口 Observer

观察者接口的更新方法 update

触发通知的时机先改数据后通知

观察者模式调用顺序 准备阶段1创建目标对象2创建观察者对象3相目标对象注册观察者对象 运行阶段1改变目标对象的状态1.1通知所有注册地观察者对象进行相应的处理1.1.1回调目标对象,获取相应数据

通知的顺序 观察之间是平行的*

说的太复杂了,感觉没有把观察者模式的本质讲解明白。至于推模型和拉模型的区别,解释的也比较生硬。其实在传统的观察者模式中,全都属于推模式。拉模式应该是在观察者一段存在一个轮训,然后每隔一段时间就向观察对象回调一次数据。有变化就更新自己的状态,没有变化就继续轮训





观察者模式 触发联动

当一个抽象模型有两个方面,其中一个方面的操作依赖于另一个方面的状态变化
如果在更改一个对象的时候,需要同时连带改变其他的对象,而且不知道究竟应该 有多少对象需要被连带改变

当一个对象必须通知其他的对象,但是你又希望这个对象和其他的被通知的对象是松散耦合的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: