2017-10-21 37 views

回答

2

如果你看看文件,你会在接下来的一句看到:

允许隐藏额外的功能,如主题的观察方法或预防某些基于身份的优化(融合)。

一个例子是:

PublishSubject<Object> objectPublishSubject = PublishSubject.create(); 

Observable<Object> hide = objectPublishSubject.hide(); 

比方说,您使用PublishSubject内部并希望可观察到的传递给外界。这是一个好主意,因为信息隐藏。来自外部的调用者将无法在Observable上调用#onNext()。所以,你可以使用Observable作为方法的返回值,并返回PublishSubject。这是可能的,但调用者将能够投射它并且能够从外部调用#onNext()。

Observable#hide从PublishSubject创建一个新的Observable,因此不可能投射。

+0

不错!顺便说一句,如果我有一个Observable A onNext(“A”),我希望每次Observable一个调用onNext,一个Observable B也调用onNext(“A”)。它就像Observable对Observable B的传递值。我该怎么做?例如MVVM模型,View push Observable of Button click to ViewModel和ViewModel可以订阅它。请注意,ViewModel没有提及查看 – coinhndp

+0

请为此问题创建一个新问题,以便其他人可以对此作出贡献。 –