Rxjava从入门到精通:手写Rxjava框架(一):总结框架设计精髓

1: 框架类图(被观察者,观察者,订阅事件)

2: 框架事件流概念

1)抽象的流概念:链式构建流, subscirbeActual 订阅流,观察者回调流

2) 事件的流动是从左到右:如果把每个被观察者看成一个节点,那么节点左侧代表上游,右侧代表下游。

3) Rxjava使用了装饰器模式,所以每次新的被观察的构建都是基于上一个被观察者的,也就是下一个被观察者持有了上一个被观察者的引用。

4) 每次创建新的被观察者,也会创建新的观察者,而这个观察者同样持有下游观察者引用。

3:框架订阅流 subscribeActual & 观察者回调流

1) 从右边到左边实际是执行订阅的过程:

每个被观察者都持有了上游被观察者的引用

当订阅操作执行时,都会调用上游被观察者来执行订阅(即调用被观察者的subscribe函数)。所以从订阅的过程上来看,是从右到左进行的。也就是说最后的一个被观察者依次向上游的被观察者调用subscribe方法。

2)从左边到右边实际是事件的流动的方向:

每个被观察者都会通过subscribe(Observer  observer) 传入一个下游的观察者。

每个观察者都持有下游观察者的引用

当处理事件时,最终都会交由下游的观察者来进行处理,也就是把事件向下传递。所以可见整个观察者的回调处理事件也是从左边到右边的一个过程。

4:Rxjava性能问题

在页面销毁后,Observable仍然还有事件等待发送和处理,这个时候会导致Activity回收失败,从而导致内存泄漏。那么解决Rxjava内存泄漏的主要方式就是在页面关闭之前取消所有的订阅。

4.1 :使用 Disposable , 关闭页面时调用dispose()取消订阅。

4.2 :使用CompositeDisposable, 添加一组 Disposable, 在关闭页面时同时取消订阅。

5: Rxjava 衍生框架

1)生命周期相关的  RxLifecycle 

2)  权限访问库  RxPermission

3)  控件绑定  RxBinding

4)  Rxjava + Retrofit  + Okhttp  主流的网络模块搭建

Rxjava : 响应式编程,强大的异步处理能力

Retrofit :  基于Okttp 封装,通过注解形式指定请求的接口

Okttp: 高效的网络访问库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值