我開始學習反應流,因爲我對使用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實現?