Observer
Propósito
Según el libro "Patrones de Diseño" [29] el patrón Observer "define una dependencia de uno-a-muchos entre objetos, de forma que cuando un objeto cambie de estado se notifique y se actualicen automáticamente todos los objetos que depende de él".
También conocido como
Dependents (Dependientes), Publish-subscribe (Publicar-Suscribir)
Estructura

Participantes
Sujeto:
conoce a sus observadores. Un sujeto puede ser observado por cualquier número de variables Observador.
proporciona una interfaz para asignar y quitar variables Observador.
Observador:
define una interfaz para actualizar las variables que deben ser notificadas ante cambios en un sujeto.
SujetoConcreto:
almacena el estado de interés para las variables ObservadorConcreto.
envía una notificación a sus observadores cuando cambia su estado.
ObservadorConcreto:
mantiene una referencia a una variable SujetoConcreto.
guarda un estado que debería ser consistente con el del sujeto.
implementa la interfaz de actualización del Observador para mantener su estado consistente.
Implementación
No se observan impedimentos y/o modificaciones de la estructura original del patrón para su implementación en Go.
El Sujeto y Observador se definen como interfaces por simplificación.
Código de ejemplo
En este ejemplo queremos que postulantes a empleos sean notificados cuando se creen ofertas laborales.
Implementación:
Se puede probar la implementación del patrón de la siguiente forma:
Código de ejemplo | Ejecutar código
Atención: Esta publicación se encuentra abandonada. Puede acceder a la versión vigente en https://leanpub.com/designpatternsingo
Última actualización
¿Te fue útil?