Aquí está mi opinión sobre los tres:
El enlace de datos
Esencialmente, en el fondo esto solo significa que "el valor de la propiedad X en el objeto Y está semánticamente unido al valor de la propiedad A en el objeto B. No se hacen suposiciones sobre cómo Y sabe o se alimenta los cambios en el objeto B.
Observador u observable / observador
Un patrón de diseño mediante el cual un objeto está imbuido de la capacidad de notificar a otros sobre eventos específicos, generalmente realizado mediante eventos reales, que son como ranuras similares en el objeto con la forma de una función / método específico. El observable es el que proporciona notificaciones, y el observador recibe esas notificaciones. En .net, el observable puede exponer un evento y el observador se suscribe a ese evento con un gancho en forma de "controlador de eventos". No se hacen suposiciones sobre el mecanismo específico de las notificaciones, ni sobre el número de observadores que un observable puede notificar.
Pub / Sub
Otro nombre (quizás con más semántica de "transmisión") del patrón Observable / Observador, que generalmente implica un sabor más "dinámico": los observadores pueden suscribirse o darse de baja a las notificaciones y un observable puede "gritar" a múltiples observadores. En .NET, uno puede usar los eventos estándar para esto, ya que los eventos son una forma de MulticastDelegate y, por lo tanto, pueden admitir la entrega de eventos a múltiples suscriptores y también dar de baja la suscripción. Pub / Sub tiene un significado ligeramente diferente en ciertos contextos, que generalmente implica más "anonimato" entre el evento y el evento, lo que puede ser facilitado por cualquier cantidad de abstracciones, que generalmente involucran a algún "intermediario" (como una cola de mensajes) que sabe todo fiestas, pero las partes individuales no se conocen entre sí.
Enlace de datos, Redux
En muchos patrones "similares a MVC", el observable expone algún tipo de "notificación de cambio de propiedad" que también contiene información sobre el cambio específico de propiedad. El observador es implícito, generalmente creado por el marco, y se suscribe a estas notificaciones a través de una sintaxis de enlace para identificar específicamente un objeto y una propiedad, y el "controlador de eventos" simplemente copia el nuevo valor, lo que posiblemente desencadene cualquier actualización o lógica de actualización.
Enlace de datos re Redux
¿Una implementación alternativa para el enlace de datos? Ok, aquí hay una estúpida:
- Se inicia un subproceso en segundo plano que comprueba constantemente la propiedad vinculada en un objeto.
- si ese hilo detecta que el valor de la propiedad ha cambiado desde la última verificación, copie el valor en el elemento vinculado.