浏览
月度归档: 2018年8月

[Rx.NET] 6 – 控制 Observable 的“温度”

[Rx.NET] 6 – 控制 Observable 的“温度”

Observable 的抽象概念隐藏了 Observer 对通知来源以及推送的了解。根据 Observable 的同实现,Observer 可以共享通知(同一个对象),也可以获取不同的通知实例。Observable 的实现也可以让 Observer 获取整个通知序列,也可以根据订阅时间来获取部分通知。

假设 Observable 推送音乐,作为一个 Observer 并不知道音乐来自现场演奏还是来自留声机。当来自现场时,所有听众(Observer)都共享同一个声音,但是如果来自留声机,声音就是独享的,而且无论何时订阅都可以听完整首音乐。

Observable 温度的概念是指订阅时 Observable 的状态。该状态描述了 Observable 开始及结束推送的事件和通知是否在 Observer 间共享。“热” Observable 是一个活跃的状态,就像现场表演的歌手和推送鼠标当前位置的 Observable。相比之下,“冷” Observable 是一个被动的状态,例如等待播放的专辑和被订阅时在循环中推送数据的 Observable。 ···  阅读全文