1. RxJava2 : 什么是观察者模式
2. RxJava2 : 创建操作符(无关时间)
3. Rxjava2 : 创建操作符(有关时间)
4. Rxjava2 : 变换操作符
5. Rxjava2 : 判断操作符
6. Rxjava2 : 筛选操作符
7. Rxjava2 : 合并操作符
8. Rxjava2 : do操作符
9. Rxjava2 : error处理
10. Rxjava2 : 重试
11. Rxjava2 : 线程切换
观察者模式:
Observable - > 被观察者(也可以称为发布者 用作事件的发起 名词)
Observer - > 观察者(用作事件的接收 名词)
Subscribe - > 订阅(用于连接被观察者和观察者 动词)
Element -> 元素(也可以称之为事件 名词)
传统的观察者模式(伪代码)
- 订阅 : 被观察者,通过订阅的方式,采集所有的观察者(即加入到mObservers集合当中)
- 观察 : 当有元素变化的时候,调用setData(Element element),遍历集合,调用每一个加入到集合中的观察者(注册过的)的upData(Element element),从而做到被观察者变化,每一个注册过的观察者均会感知
- 元素 : Element 封装需要感知状态的对象
- 模型 : (EventBus模型)
一个Observable作为发起(发布者)
-> 可以注册(订阅)一个或多个Observer(订阅者)
-> 发布者元素变化
-> 订阅者接收到元素变化
public class MyObservable {
private List<MyObserve> mObservers = new ArrayList();
private void subscribe(MyObserve observe){
mObservers.add(observe);
}
private void unsubscribe(MyObserve observe){
mObservers.remove(observe);
}
private void setData(MyElement element){
for (MyObserve observer : mObservers) {
observer.upData(element);
}
}
}
public class MyObserve {
public void upData(MyElement element){
}
}
rxjava中的观察者模式
- 一般情况: 观察者和被观察者都是一一对应的:即一个Observable对应一个Observer
- 在使用各种操作符的过程当中,我们操作的一个一个的元素
- 模型:
一个Observable发起(可能具有一个或多个元素,一般称之为上游)
-> 之后均被称之为下游
-> 操作符使元素产生变化
-> 一个Observer作为接收变化之后的元素