奥托 - 制作与发布
Otto - Produce vs Publish
谁能给我一个 Produce 的用例?我不太明白它的用途,因为我一直专门使用 Publish。
唯一的区别是 Produce 在 class 订阅总线时会立即发送回调吗?所以你可以在 class 注册之前制作一些东西并让 class 得到结果?
与 CommonsWare 评论的类似:
根据 Otto 文档 (http://square.github.io/otto/),@Produce
注释旨在为新订阅者提供某些事件的当前状态。要了解是否需要此功能,请考虑以下顺序:
- ProducerA 发布了一些非常重要的数据
- 一段时间后,SubscriberA 订阅了同样非常重要的数据
如果不使用 @Produce
功能,SubscriberA 将不会收到真正重要的数据。但是,如果定义了 "really important data" 的生产者,则相同的序列变为:
- ProducerA 发布了一些非常重要的数据
- 一段时间后,SubscriberA 订阅了同样非常重要的数据
- SubscriberA 从真正重要数据的生产者处接收数据
因此生产者可以向 "late joiner" 订阅者提供信息,否则这些订阅者会错过在订阅者注册之前发布的信息。
谁能给我一个 Produce 的用例?我不太明白它的用途,因为我一直专门使用 Publish。
唯一的区别是 Produce 在 class 订阅总线时会立即发送回调吗?所以你可以在 class 注册之前制作一些东西并让 class 得到结果?
与 CommonsWare 评论的类似:
根据 Otto 文档 (http://square.github.io/otto/),@Produce
注释旨在为新订阅者提供某些事件的当前状态。要了解是否需要此功能,请考虑以下顺序:
- ProducerA 发布了一些非常重要的数据
- 一段时间后,SubscriberA 订阅了同样非常重要的数据
如果不使用 @Produce
功能,SubscriberA 将不会收到真正重要的数据。但是,如果定义了 "really important data" 的生产者,则相同的序列变为:
- ProducerA 发布了一些非常重要的数据
- 一段时间后,SubscriberA 订阅了同样非常重要的数据
- SubscriberA 从真正重要数据的生产者处接收数据
因此生产者可以向 "late joiner" 订阅者提供信息,否则这些订阅者会错过在订阅者注册之前发布的信息。