如果 Subject
继承自 Observable
,那么基于任何 Subject
的下一个选项有什么区别,例如:
private val locationSubject: ReplaySubject<Location> = ReplaySubject.create<Location>()
1. 将 subject
本身作为 Observable
返回
fun getLocations(): Observable<Location> = locationSubject
2. 返回 subject.asObservable()
。
fun getLocations(): Observable<Location> = locationSubject.asObservable()
最佳答案
如果您查看 .asObservable
的实现,您会发现它通过一个什么都不做的运算符提升了 observable。这实际上只是将您的主题包装在一个可观察对象中,这使得使用代码无法将其转换回主题。
asObservable
是一种防御机制,用于隐藏实现细节,仅此而已。
关于android - "Subject.asObservable()"和主题本身 "Subject"之间有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43875168/