奥托 - 制作与发布

Otto - Produce vs Publish

谁能给我一个 Produce 的用例?我不太明白它的用途,因为我一直专门使用 Publish。

唯一的区别是 Produce 在 class 订阅总线时会立即发送回调吗?所以你可以在 class 注册之前制作一些东西并让 class 得到结果?

与 CommonsWare 评论的类似:

根据 Otto 文档 (http://square.github.io/otto/),@Produce 注释旨在为新订阅者提供某些事件的当前状态。要了解是否需要此功能,请考虑以下顺序:

  1. ProducerA 发布了一些非常重要的数据
  2. 一段时间后,SubscriberA 订阅了同样非常重要的数据

如果不使用 @Produce 功能,SubscriberA 将不会收到真正重要的数据。但是,如果定义了 "really important data" 的生产者,则相同的序列变为:

  1. ProducerA 发布了一些非常重要的数据
  2. 一段时间后,SubscriberA 订阅了同样非常重要的数据
  3. SubscriberA 从真正重要数据的生产者处接收数据

因此生产者可以向 "late joiner" 订阅者提供信息,否则这些订阅者会错过在订阅者注册之前发布的信息。