Patrón Observer
Lectura de ~3 minutos
Define una dependencia uno-muchos entre objetos, de modo que cuando un objeto cambia, todas sus dependencias se actualizan automáticamente.
Aplicabilidad
-
Cuando una abstracción tiene dos aspectos, una depende de otra. Al encapsular esos aspectos en objetos separados permite resuarlos de manera independiente.
-
Cuando un cambio en un objeto requiere cambiar otros, y no se sabe cuantos objetos se necesitan cambiar.
-
Cuando un objetos debe notificar a otros, sin saber que objetos son esos otros.
Estructura
Se define una clase abstracta que permite añadir o quitar objetos dependientes y realiza notificaciones a cada objeto dependiente. Las clases hijas contienen el estado que se debe notificar. A su vez se define una interfa que permite a todos sus hijos actualizarse cuando lo haga su dependencia.
Consecuencias
-
Permite modificar los observadores y los objetos observados independientemente.
-
Hay acoplamiento en la abstracción de la case observadora y observada. Las clases observadas saben que objetos de tipo observador están activos.
-
Soporta la comunicación de tipo broadcast.
-
Puede provocar actualizaciones inesperadas si no se mantiene el listaod de observadores.
Aquí un pequeño ejemplo de este patrón en net core.
Nos vemos en las próximas líneas.