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

这里写图片描述
Subject–>小明–>知道他的观察者(妈妈,女朋友)–>可以添加,删除,通知他的观察者
ConcreteSubject–>天气预报–>各种不同天气状态–>天气改变了也要通知观察者(小明)的妈妈,女朋友
Observer->接口
ConcreatObserver–>小明母亲和女朋友–>重写接口的update方法,使得状态改变了观察者也马上观察得到
——只有我觉得这个观察者模式和那个多线程的同步问题差不多吗
*目标接口 Subject
观察者接口 Observer
观察者接口的更新方法 update
触发通知的时机先改数据后通知
观察者模式调用顺序 准备阶段1创建目标对象2创建观察者对象3相目标对象注册观察者对象 运行阶段1改变目标对象的状态1.1通知所有注册地观察者对象进行相应的处理1.1.1回调目标对象,获取相应数据
通知的顺序 观察之间是平行的*
说的太复杂了,感觉没有把观察者模式的本质讲解明白。至于推模型和拉模型的区别,解释的也比较生硬。其实在传统的观察者模式中,全都属于推模式。拉模式应该是在观察者一段存在一个轮训,然后每隔一段时间就向观察对象回调一次数据。有变化就更新自己的状态,没有变化就继续轮训
这里写图片描述
这里写图片描述
观察者模式 触发联动

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

      当一个对象必须通知其他的对象,但是你又希望这个对象和其他的被通知的对象是松散耦合的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值