为什么 Flowables 不是 Observables; Observable 接口(interface)几乎是 Flowable 的一个子集,它们的实现几乎相同。

他们为什么不实现一个通用接口(interface),以便我们可以直接将 Flowable 转换为 Observable?

最佳答案



概念分离。我会选择 Flowable 只是因为它可以执行所有其他类型。然而,社区强烈希望以不同的类型反射(reflect)主要的行为属性: SingleMaybeCompletable ...



这是可能不是每天都编程的人的普遍观点。对他们来说不幸的是,类型系统和语言 (Java) 并没有让这种高级抽象很容易或根本没有被专门化。

另外,实现背压需要 specific algorithms and building blocks 并且会变得非常复杂。我鼓励您查看更难的运算符之一之间的区别: Flowable.flatMapIterableObservable.flatMapIterable


Flowable 实现了 Reactive-Streams 接口(interface),因此我们不能只声明 Subscriber extends ObserverSubscription extends Disposable

此外,在早期的 v2 中,Observable 实现了 Publisher 并导致大量的歧义,手动转换将成为库用户的主要痛点。

关于rx-java - 为什么 Flowables 不是 Observables,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43876069/

10-10 10:14