为了账号安全,请及时绑定邮箱和手机立即绑定

观察者模式

GerryZhang JAVA开发工程师
难度中级
时长 1小时56分
学习人数
综合评分9.53
113人评价 查看评价
9.7 内容实用
9.6 简洁易懂
9.3 逻辑清晰
讲得很详细,学习了,尽量运用上去
视频看不了 有问题
观察者模式 触发联动
当一个抽象模型有两个方面,其中一个方面的操作依赖于另一个方面的状态变化
如果在更改一个对象的时候,需要同时连带改变其他的对象,而且不知道究竟应该 有多少对象需要被连带改变
当一个对象必须通知其他的对象,但是你又希望这个对象和其他的被通知的对象是松散耦合的
推模型 广播通信
拉模型 目标自身通过update方法传递给观察者
命名建议
目标接口 Subject
观察者接口 Observer
观察者接口的更新方法 update
触发通知的时机先改数据后通知
观察者模式调用顺序 准备阶段1创建目标对象2创建观察者对象3相目标对象注册观察者对象
运行阶段1改变目标对象的状态1.1通知所有注册地观察者对象进行相应的处理1.1.1回调目标对象,获取相应数据
通知的顺序 观察之间是平行的
MIC 的问题吗?这节课听起来有点累哦。声音有点含糊~~
@Wi 如果像你说的对每个天气内容作为一个订阅者的话,那这样的设计会不会使得订阅者太多,造成结构的复杂性值得考虑
例如天气的情况会有很多种
不单是 下雨,晴天
还有下雪 冰雹 高温 台风 等等等等的情况
@Wi 观察者模式 是 一个订阅者 对应多个观察者, 订阅者是一个服务,他可以是天气预报,也可以是别的服务,
而在天气预报这个服务内可以发送各种不同的天气内容
如果像你那样将每个天气内容都作为一个订阅者的话,一对一的进行观察的话只是一对多的一种特例
如何使用需要根据具体的场景灵活使用
Wi
這樣的實現不是需要雙向依賴嘛,根本就有問題
假如是我來實現我會將每個天氣定義一個訂閱,再讓觀察者進行觀察
推荐大家看看《head first设计模式》,易入门!
这是head first设计模式的梗啊,擦!
幽默,风趣,好!
课程须知
学习本课程前,需要具备Java基础,面向对象的程序设计思想。如果对这些知识不熟悉,可以学习《Java入门第一季》和《Java入门第二季》这两门课程。
老师告诉你能学到什么?
1、理解观察者模式的概念和结构 2、掌握如何将观察者模式应用到项目中,解决项目实际问题 3、掌握观察者模式的应用场景

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消