博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式——观察者模式
阅读量:6422 次
发布时间:2019-06-23

本文共 670 字,大约阅读时间需要 2 分钟。

hot3.png

为什么使用观察者模式?

当一个对象改变时,会影响其他几个对象的改变,此时应该使用观察者模式。

也即一个事件发生时,会产生一些后续事件。

 

为什么不直接在对象改变的代码中直接添加改变其他对象的代码?

①因为一旦需要增删改对其他对象的操作,就需要直接修改原始对象操作的代码。不利于程序的维护。

②在原始事件处理代码中加入对后续事件的处理代码,会拖慢原始事件的处理速度。

 

什么是观察者模式?

定义:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。

 

简单来说,观察者模式有两个对象,分别是被观察者观察者们

被观察者需要将它的观察者们的引用存储在一个集合中,在它发生改变时,及时的提醒集合中的观察者们做出相应的改变。

观察者们需要实现一个与被观察相对应的统一接口,以便被观察者能够方便的查找到实现了此接口的观察者们,同时观察者们的内部也需要做出响应被观察者的响应操作。

 

比如:

原始事件(被观察者)为——微博点赞;

后续事件(观察者们)为——给被点赞人发送提示,增加两位用户之间的亲密度,判断该微博是否晋升为热门微博等等;

”微博点赞“事件处理完成之后,观察者们也收到要做出相应操作的通知,并做出相应反应。

好处之一——增强用户体验:此处的”微博点赞“和用户体验最直接,用户一点完赞,必须很快能够看到相应的界面变化,但是其他后续事件相对来说,并不是那么紧急,我们可以再单独开一条线程来完成后续事件。

转载于:https://my.oschina.net/u/3786691/blog/1809119

你可能感兴趣的文章
运用免费OA让你有意想不到的效果
查看>>
一些软件设计软则
查看>>
Linux运维基础命令
查看>>
使用PowerShell配置IP地址
查看>>
第十一章 MySQL运算符
查看>>
JAVA常见算法题(十七)
查看>>
GUI鼠标相关设置
查看>>
使用 <Iframe>实现跨域通信
查看>>
闭包--循序学习
查看>>
项目实战之集成邮件开发
查看>>
解决C3P0在Linux下Failed to get local InetAddress for VMID问题
查看>>
1531 山峰 【栈的应用】
查看>>
巧用美女照做微信吸粉,你会做吗?
查看>>
wcf学习总结《上》
查看>>
ERROR (ClientException)
查看>>
WYSIWYG 网页在线编辑器比较表
查看>>
vss团队开发工具使用(个人学习心得)
查看>>
Load Balance 产品横向比较
查看>>
Java代理程序实现web方式管理邮件组成员
查看>>
【编译打包】tengine 1.5.1 SRPM
查看>>