为什么 Flowable 不是 Observable; Observable 接口几乎是 Flowable 的子集,它们的实现几乎相同。
为什么他们不实现一个通用接口,以便我们可以直接将 Flowable 转换为 Observable?
为什么 Flowable 不是 Observable
概念分离。我会和Flowable
只是因为它可以做所有其他类型。然而,社区强烈希望以不同的类型反映主要的行为属性:Single
, Maybe
, Completable
...
Observable 接口几乎是 Flowable 的子集
这是那些可能不每天编程的人的普遍观点。对他们来说不幸的是,类型系统和语言(Java)不允许这样的高级抽象轻松地或根本无法专业化。
另外,实施背压需要具体算法和构建块 http://akarnokd.blogspot.co.uk/并且可能会变得相当复杂。我鼓励您检查一下较难的运算符之一之间的区别:Flowable.flatMapIterable https://github.com/ReactiveX/RxJava/blob/2.x/src/main/java/io/reactivex/internal/operators/flowable/FlowableFlattenIterable.java#L218 vs Observable.flatMapIterable https://github.com/ReactiveX/RxJava/blob/2.x/src/main/java/io/reactivex/internal/operators/observable/ObservableFlattenIterable.java#L69.
为什么他们不实现一个通用接口,这样我们就可以直接将 Flowable 转换为 Observable
Flowable
实现了 Reactive-Streams 接口,因此我们不能只声明Subscriber extends Observer
and Subscription extends Disposable
.
此外,在 v2 早期的某个时间,Observable
实施的Publisher
并造成大量的歧义,而手动转换将成为图书馆用户的主要痛点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)