我开始学习反应流,因为我对使用RxJava替代更传统的事件总线的新趋势感到好奇。 This blog post是如何完成的典型描述。如果我理解正确,RxJava 1.x并不严格执行反应流,但它非常相似。版本2.0包含一些符合要求的类,或者至少通过TCK,因此此代码的更新版本可能会有所不同。使用Reactive Streams Processor作为事件总线通常可以吗?
public class UserLocationModel {
private PublishSubject<LatLng> subject = PublishSubject.create();
public void setLocation(LatLng latLng) {
subject.onNext(latLng);
}
public Observable<LatLng> getUserLocation() {
return subject;
}
}
在无流术语,我认为subject
是Processor
,这既是一种Publisher
和Subscriber
。
的问题是,呼吁未订阅任何一个Subscriber
onNext
似乎违反了无流规范,特别rule 1.9。
这仅仅是一个实现细节,它可以工作吗?我是否正确地认为你通常不能依赖于这个工作来实现兼容的Reactive Streams实现?