Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Iterator Observer
Iterator Observer
OBSERVER
Intencin del patrn
Define una dependencia uno a muchos entre objetos, para que, cuando un objeto
cambie su estado, todos sus dependencias sean notificadas y actualizadas
automticamente.
Ejemplo de problema
Un diseo moltico de gran tamao no se ajusta bien a una nueva representacin grfica o
se imponen requerimientos de seguimiento.
Discusin
Define un objeto que es el Keeper (guardin) del modelo de datos y/o lgica de negocios
(el Subject). Delega toda la funcionalidad visual a distintos y desacoplados objetos
Observer. Los Observers se registran por s mismos con el objeto Subject cuando es
creado. Cada vez que Subject cambia, difunde a todos los objetos Observers registrados
que ha cambiado y cada Observer consulta al objetoSubject por el subconjunto de datos
del estado de Subject por el que es responsable monitorear.
Esto permite que el nmero y tipo de objetos View sean configurados dinmicamente en
lugar de ser especificados estticamente en tiempo de compilacin.
El protocolo descripto ms arriba especifica el modelo de interaccin "Pull". En lugar de
queSubject "pushing" (avise) a cada Observer que ha cambiado, cada Observer es
responsable de obtener su particular "ventana de inters" de Subject. El modelo "Push"
compromete la reutilizacin, mientras que el modelo "Pull" es menos eficiente.
Los temas que se discuten, pero que son dejados en consideracin del diseador,
Ejemplo
El patrn Observer define una relacin de uno a muchos, entonces, cuando un objeto
cambia su estado, los otros son notificados y actualizados automticamente. Algunas
subastas presentan este patrn. Cada licitador posee una paleta numerada que es usada
para indicar una oferta. El subastador comienza la subasta y "observa" cuando una paleta
es levantada para aceptar la oferta. La aceptacin de la misma cambia el precio mximo
alcanzado y es avisado a todos los postores en la forma de una nueva oferta.