RxJava:使用、内存管理与未来方向
1. RxJava中的类型选择
1.1 Completable的引入
在某些架构中,存在许多没有有意义结果但可能会抛出异常的操作,例如命令查询分离(CQS)架构中的命令操作,它们是异步的且没有结果。在这种情况下,使用 rx.Single<Void> 效果不佳,因此引入了 rx.Completable 。当架构中有大量此类操作时,可使用 Completable 。
1.2 Observable的适用场景
当应用程序处理随时间出现的事件流时,如用户登录、GUI 事件和推送通知, Observable 是不二之选。虽然 Java 从 1.0 版本就提供了 java.util.Observable ,允许注册观察者并同时通知它们,但它存在以下不足:
- 组合能力(没有操作符)
- 泛型支持不足(观察者的 update() 方法接收表示任意通知负载的 Object )
- 性能问题(到处使用 synchronized 关键字,内部使用 java.util.Vector )
- 关注点分离不足(在某种意义上,它将 Observable 和 PublishSubject 组合在同一个接口下)
- 并发支持不足(所有观察者按顺序通知)
超级会员免费看
订阅专栏 解锁全文
1007

被折叠的 条评论
为什么被折叠?



