博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
观察者模式与它在源码中的运用
阅读量:6096 次
发布时间:2019-06-20

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

观察者模式定义对象间的一种一对多的依赖关系,当被观察的对象发生变化时,所有的观察者都将得到通知进行相应的操作

过马路的时候我们都会看红绿灯,此时我们就是观察者,红绿灯由红变成绿的时候,行人和车辆观察到这个变化,开始穿越马路,这里的红绿灯变化就是可观察的对象

访问流程如下

Subject这里就是被观察的对象,Observer就是观察者

RxJava中对观察者模式的运用

Disposable disposable = Observable.just(1).subscribe(new Consumer
() { @Override public void accept(Integer integer) throws Exception { LOG.info("accept:{}", integer); } });复制代码

,查看 justVerify

  • Disposable 提供 dispose()方法,可以解除订阅关系 (类比detach)
  • Observable 从名字上可以看出来,它是一个可被观察的对象(类比 Subject)
  • subscribe 实现订阅的操作 (类比 attach)
  • Consumer 中的accept 即对观察到的对象实行的操作(类比 logicHandle)
  • Observer 代码中没有出现,但是rxjava自己在内部会通过在调用subscribe的时候,创建 Observer,然后同样在内部实现调用 onNext (类比Observer与notify)

。另值得注意的是 RxJava 是在订阅的时候就发送了数据

通常可以用观察者模式的情况

一个对象的改变需要需要周知到其它对象,做出相应的行为。但是却不知道具体有多少对象有待改变或根本不知道具体的对象是谁

转载地址:http://zdzza.baihongyu.com/

你可能感兴趣的文章
数学之美系列二十 -- 自然语言处理的教父 马库斯
查看>>
Android实现自定义位置无标题Dialog
查看>>
面试总结
查看>>
Chrome浏览器播放HTML5音频没声音的解决方案
查看>>
easyui datagrid 行编辑功能
查看>>
类,对象与实例变量
查看>>
HDU 2818 (矢量并查集)
查看>>
【转】php字符串加密解密
查看>>
22. linux 常用命令
查看>>
ASP.Net 使用GridView模板删除一行的用法
查看>>
(十六)字段表集合
查看>>
JPGraph
查看>>
实验二 Java面向对象程序设计
查看>>
------__________________________9余数定理-__________ 1163______________
查看>>
webapp返回上一页 处理
查看>>
新安装的WAMP中phpmyadmin的密码问题
查看>>
20172303 2017-2018-2 《程序设计与数据结构》第5周学习总结
查看>>
(转)HTML的代码(从朋友那转的,看着觉得会有用就转了)
查看>>
eclipse中将一个项目作为library导入另一个项目中
查看>>
Go语言学习(五)----- 数组
查看>>