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
.
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.