RxSwift学习——Observable & Observer 既是可监听序列也是观察者

这是我参与8月更文挑战的第6天,活动详情查看:8月更文挑战

声明

出于官方文档的一致性,我还是引用了这个又臭又长的名字——Observable & Observer 既是可监听序列也是观察者。

但是我想说,今天我要讲解的这类型组件用Relay(继电器)这个概念来说明就够了!

另外我没理解RxSwift中频繁使用Subject这个单词,但是我没理解其意义,还望大佬们指点。

前言

上一节,我讲解了Observer(观察者),和之前说明序列比作是工控作业的流水线一样,用于输出。

我把观察者比作是工控中传感器,它用于接收从序列过来的信号,用于输入。

其实在整个工控系统的中,有些传感器不仅接收信号,还需要对信号做转换并输出,这种元件又叫做继电器

理解Relay(继电器)

在我学习Observable&Observer这种类型的时候,看到了BehaviorRelayPublishRelay这两个类,它们是一个相对独立的模块,放在一个叫RxRelay的文件夹中的。

BehaviorRelayPublishRelay分别对应的是BehaviorSubjectPublishSubject这个两种类型,其内部实现都是用BehaviorSubjectPublishSubject的一层封装,具体代码不展开:

public final class BehaviorRelay<Element>: ObservableType {

    private let _subject: BehaviorSubject<Element>
    
    /// Accepts `event` and emits it to subscribers
    public func accept(_ event: Element) {
        self._subject.onNext(event)
    }
.
.
.
复制代码
public final class PublishRelay<Element>: ObservableType {

    private let _subject: PublishSubject<Element>
    
    // Accepts `event` and emits it to subscribers
    public func accept(_ event: Element) {
        self._subject.onNext(event)
    }
·
·
·
复制代码

真正让我感兴趣的是这个单词Relay

image.png

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享