Observer pdd - tectijuana/javapdd16a-Archived GitHub Wiki

#Patrón Observer

El patrón Observer tiene como objetivo construir una dependencia entre un sujeto y los observadores de modo que cada modificación del sujeto sea notificada a los observadores para que puedan actualizar su estado.

##Diagrama UML

Diagrama UML.

El diagrama contiene las cuatro clases siguientes:

  • Sujeto es la clase abstracta que incluye todo objeto que notifica a los demás objetos de las modificaciones en su estado interno.
  • Vehículo es la subclase concreta de Sujeto que describe a los vehículos. Gestiona dos atributos: descripción y precio.
  • Observador es la interfaz de todo objeto que necesite recibir las notificaciones de cambio de estado provenientes de los objetos a los que se ha inscrito previamente.
  • VistaVehículo es la subclase concreta correspondiente a la implementación de Observador cuyas instancias muestran la información de un vehículo.

El funcionamiento es el siguiente: Cada nueva vista se inscribe como observador de su vehículo mediante el método agrega . Cada vez que la descripción o el precio se actualizan, se invoca el método notifica . Éste solicita a todos los observadores que se actualicen, invocando a su método actualiza . En la clase VistaVehículo , éste último método se llama redibuja . ##Dominios de aplicación

El patrón se utiliza en los casos siguientes:

  • Una modificación en el estado de un objeto genera modificaciones en otros objetos que se determinan dinámicamente.
  • Un objeto quiere avisar a otros objetos sin tener que conocer su tipo, es decir sin estar fuertemente acoplado a ellos.
  • No se desea fusionar dos objetos en uno solo.