Отто - Продюсер против публикации

Может кто-нибудь дать мне пример использования Produce? Я не совсем понимаю его назначение, так как использую исключительно Publish.

Разница лишь в том, что с Produce он отправит обратный вызов немедленно, когда класс подпишется на шину? Таким образом, вы можете произвести что-то до регистрации класса и получить ли этот класс результат?

1 ответ

Решение

Подобно тому, что прокомментировал CommonsWare:

Согласно документам Отто ( http://square.github.io/otto/), @Produce аннотация предназначена для предоставления новым подписчикам текущего состояния какого-либо события. Чтобы увидеть необходимость этой функции, рассмотрите следующую последовательность:

  1. ProducerA публикует некоторые действительно важные данные
  2. Некоторое время спустя SubscriberA подписывается на те же действительно важные данные

Без использования @Produce По функциональности SubscriberA не получит действительно важные данные. Однако, если производитель "действительно важных данных" определен, такая же последовательность становится:

  1. ProducerA публикует некоторые действительно важные данные
  2. Некоторое время спустя SubscriberA подписывается на те же действительно важные данные
  3. SubscriberA получает данные от производителя действительно важных данных

Поэтому производители могут предоставлять информацию подписчикам "позднего присоединения", которые в противном случае пропустили бы информацию, которая была опубликована до регистрации подписчика.

Другие вопросы по тегам