Subjects

VS

Observable

Subject

  • Origen en patrón Observer
     
  • Mecanismo para notificar a un conjunto de observadores de forma desacoplada
     
  • Dependencia one to many
     
  • Es como un HUB que propaga eventos

Observable

  • Mecanismo para desacoplar la iteración sobre una colección de eventos

     
  • Representa un flujo de datos entre 2 objetos 
    • Observable (el que emite los datos)
    • Observer (el que los recibe)
       
  • Relación one-to-one

Subjects

  • HOT - emiten incluso sin suscripción

 

  • one-to-many: comparten la secuencia con todos los observers
     
  • Tienen estado (un observer se pierde los valores emitidos antes de su suscripción)
     
  • No son reutilizables. Una vez se completa la secuencia, es inservible

Observables

  • COLD - emiten solo cuando tienen alguna suscripción
     
  • one-to-one: Cada observer recibe una copia de la secuencia
     
  • No tienen estado (emiten desde el ppio para cada observador)
     
  • Reutilizables. Te puedes suscribir (e iniciar la secuencia) tantas veces como quieras

El Subject es un "hub"

  • Es como un Observable (puede recibir suscripciones)
     
  • Hereda de Observer (puede suscribirse a un Observable)
     
  • Difunde hacia sus observers los eventos a los que él mismo está suscrito

    Mecanismo para hacer multicast de un Observable

SubjectsObservable

By Enrique Oriol

SubjectsObservable

  • 64