Patrón de diseño Observer

UMLEste es sin duda uno de los patrones mas utilizados cuando trabajamos con aplicaciones de escritorio o al utilizar la Event-Driver Architecture(EDA).Un Observer es un componente el cual lo único que hace es estar atento a los eventos que el Target realiza, Cuando Target realiza un cambio o evento este notifica a todos los Observers que están registrados. De esta manera las clases observer serán notificadas del evento que realizo el Target.

 

Para explicar correctamente este Patrón de diseño le comparto esta imagen:

Observer

Imaginemos un escenario de la vida real para comprender mejor esta patrón para lo cual nos ubicamos en el Aeropuerto y estamos esperando a que nos indiquen que podemos abordar el avión por medio de las bocinas que hay en el aeropuerto.

Bien, de seguro no eres el único que esta esperando el vuelo, de seguro existen muchas personas que esperan el abordaje, En este escenario nosotros junto con todas las demas personas que esperan el vuelo son Observers y la bocina es el Tajet Ya que todos estamos atento a que nos indique que ya podemos abordar lo cual es un evento que realiza la bocina y que nosotros estamos esperando(Observando) para realizar una acción(Abordar).

Entonces el mecanismo por el cual el observer trabaja es el siguiente:

  1. Existe un componente u Objecto al cual queremos observar(Tarjet)
  2. Tenemos algún modulo u otro Objeto(Observer) el cual queremos que sea notificado cuando Tarjet realice una acción.
  3. Los Observers deben implementar una Interfaz común que tanto el Target como el Observer conozcan.
  4. Los Observers deberán ser registrados en el Tarjet el cual los almacenara en una lista.
  5. Cuando el Tarjet realice una acción notificara a todos los Observers los cuales se registraron en el paso anterior.
  6. Los Observers recibirán la notificación como un Evento el cual el Observer procesara para hacer una acción.

 

Si nos damos cuenta es mucho mas simple de lo que parece y muchos de las aplicaciones utilizan este patrón y ni siquiera nos damos cuenta.

 

En tu experiencia, ¿donde crees que se mas conveniente utilizar esta patrón o como lo implementarías?

 

Introducción a los patrones de diseño
¿Quieres aprender más patrones como este? te invito a que veas mi libro.

 

Ya está a la venta mi nuevo libro “Introducción a los patrones de diseño“, en donde expongo los 25 patrones de diseño más utilizados y explicados desde un enfoque del mundo real, con ejemplos que pueden ser aplicados en tus proyectos. Sin duda es unos de los libros más completos de patrones de diseño en español.

Artículos relacionados

Patrón de Diseño Factory El patrón de diseño Factory Method nos permite la creación de un subtipo determinado por medio de una clase de Factoría, la cual oculta los detal...
Patrón de diseño – Proxy En esta entrada les hablare del patrón de diseño Proxy, el cual es uno de mis favoritos ya que nos permite hacer una gran cantidad de cosas sin que el...
Service Discovery pattern para microservicios Una gran parte de las aplicaciones que se construyen hoy en día, requieren de un API para funcionar, dicha API ofrece todos los servicios necesari...

Oscar Blancarte

Ideológico, Innovador y emprendedor, Padre, Tecnólogo y Autor, amante de la ciencia y la tecnología en todos sus colores y sabores. Arquitecto de software & Full Stack Developer con experiencia en la industria del desarrollo de software y la consultoría. Amante de la programación y el Ajedrez.

3 comentarios en “Patrón de diseño Observer

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *