OBSERVER DESIGN
PATTERN
Yenifer Barco Castrillón
DESING PATTERN
Los Patrones de diseño son herramientas para solucionar problemas de
Diseño enfocados al desarrollo de software, estos patrones deben ser
reusables permitiendo así que sean adaptados a diferentes
problemáticas.
Existen 3 grupos de patrones:
 Creacionales: Giran en torno a la creación de Objetos
 Estructurales: Se enfocan en la estructura de clases y objetos que las
componen
 De Comportamiento: Definen el modo en que las clases y objetos son
relacionados, el comportamiento he interacción entre ellos.
OBSERVER
Es un patrón de
comportamiento permite
actualizar automáticamente
el estado de un objeto
dependiendo del estado de
un objeto principal, cuando
el objeto principal cambia
sus objetos dependientes se
actualizan.
DIAGRAMA DE CLASES
SIGNIFICADO LINEAS
(#) Los atributos/operaciones protegidos están visibles para las clases
derivadas de la original.
PARTICIPANTES
Tendremos sujetos concretos cuyos cambios pueden resultar interesantes
a otros y observadores a los que al menos es interesa estar pendientes de
un elemento y en un momento dado, reaccionar ante sus notificaciones
de cambio. Todos los sujetos tienen en común que un conjunto de
objetos quieren estar pendientes de ellos. Cualquier
elemento que quiera ser observado tiene que permitir indicar:
1. “Estoy interesado en tus cambios”.
2. “Ya no estoy interesado en tus cambios”.
El observable tiene que tener, además, un mecanismo de aviso a los
interesados.
 Sujeto (Subject): El sujeto proporciona una interfaz para agregar
(attach) y eliminar (detach) observadores. El Sujeto conoce a todos
sus observadores.
 Observador (Observer): Define el método que usa el sujeto para
notificar cambios en su estado (update/notify).
 Sujeto Concreto (ConcreteSubject): Mantiene el estado de interés
para los observadores concretos y los notifica cuando cambia su
estado. No tienen porque ser elementos de la misma jerarquía.
 Observador Concreto (ConcreteObserver): Mantiene una referencia
al sujeto concreto e implementa la interfaz de actualización, es decir,
guardan la referencia del objeto que observan, así en caso de ser
notificados de algún cambio, pueden preguntar sobre este cambio.
METODOS IMORTANTES
addObserver (Observador o): Añadir observadores en el conjunto de
observadores de este tema u objeto observalbel.
deleteObserver (Observador o): Borrar observadores en el conjunto de los
observadores.
hasChanged (): Comprobar si el objeto ha cambiado.
clearChanged (): Este método indicará que sujeto no tiene cambios o todos
los observadores ha sido notificada cuando se realizan cambios.
notifyObservers (): Notificar a todos los observadores si el objeto ha
cambiado.
Update (Observable Ob, Object arg): Este metodo es llamado cuando el
sujeto se cambia.
Interfaz pública Observador: Cualquier clase que implemente esta interfaz
debe ser notificado cuando el objeto sujeto o cambiar su estado observable.
Observer design pattern
PROBLEMA
Cuando tenemos una dependencia de 1 a muchos entre objetos, y se
espera que cuando el estado de un objeto cambie, todos los objetos
dependientes de este también cambien de forma automática.
EJEMPLO:
Se tiene una aplicación de venta de productos administrada por
diferentes vendedores con diferentes aplicativos, se espera que cada
vez que cambie la cantidad de productos disponibles, la aplicación de
cada vendedor automáticamente actualicé el modulo de ventas con los
nuevos.
SOLUCIÓN
Se aplica el patrón observador para desacoplar la clase que contenga
objetos dependientes, estableciendo relaciones entre los objetos, para
esto se tiene una clase SujetoConcreto que será el objeto principal y
tendremos los objetos cliente o dependientes que serian de clase
ObservadorConcreto, cuando el estado del SujetoConcreto cambia, se
envía una señal a cada uno de sus Observadores y estos automáticamente
cambian su estado basados en el estado del objeto principal.
EJEMPLO 1
Patrón Observer utiliza tres clases de actores. Asunto,
Observador y cliente. El sujeto es un objeto que tiene
métodos para unir y separar los observadores a un
objeto de cliente. Hemos creado una clase
abstracta Observador y una clase concreta Asunto que
se está extendiendo la clase Observador.
ObserverPatternDemo , nuestra clase de demostración,
utilizará Asunto objeto de clase y concreto para
mostrar el patrón de observador en la acción.
Observer design pattern
SOLUCIÓN
Paso 1 – Crear la clase Subject.
Paso 2 - Crear la clase Observer.
Paso 3 – Crear las clases de
concreteObserver, en este caso:
hexaObserver, BinaryObserver y
OctalObserver.
Paso 4 – Crear la clase
ObserverPatternDemo.
EJEMPLO 2
Usted tiene un préstamo en el que la tasa de interés
está sujeta a cambios y cuando cambia, Préstamo
notifique al periódico o Internet los medios de
comunicación para mostrar la nueva tasa de interés
del préstamo.
Para implementar este tenemos un Asunto de
interfaz que contiene métodos para añadir, eliminar
y notificar a los observadores y un Observador de
interfaz que contiene la actualización (interés
int) método que será llamado por la aplicación
Asunto cuando los cambios de tipos de interés.
SOLUCIÓN
Paso 1 – Crear la interfaz Observador.
Paso 2 - Crear la interfaz Asunto.
Paso 3 – Crear la clase Prestamo que extiende de la interface Asunto.
Paso 4 – Crear la clase Newspaper e Internet que extienden de la
interface Observador.
Paso 5 – Crear la clase ObserverTest la cual contiene el main.
RESULTADO:
Gracias por su
atención

Más contenido relacionado

PPTX
Observer design pattern
DOCX
PDF
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
PPTX
Preparedstatement(grupal)
PDF
Patrón Observer
PPTX
Strategy pattersn
PDF
Observer Pattern
Observer design pattern
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
Preparedstatement(grupal)
Patrón Observer
Strategy pattersn
Observer Pattern

Destacado (20)

PDF
Observer Pattern
PPT
Design patterns - Observer Pattern
PPTX
Design Pattern - Observer Pattern
PPSX
Observer design pattern
PPT
Observer and Decorator Pattern
PPTX
Konstantin slisenko - Design patterns
PPTX
Design pattern-presentation
PDF
L05 Design Patterns
PPTX
Observer Pattern
PDF
Js design patterns
PPT
Observer pattern
PPTX
Observer Software Design Pattern
PPTX
Kata terbitan
PPT
Design patterns 4 - observer pattern
PPTX
Observer pattern
PPT
Observer Pattern Khali Young 2006 Aug
PPTX
Design patterns: observer pattern
PDF
Observer design pattern
PPTX
Design pattern - Software Engineering
PPTX
Juan carlos briquet: Siete maravillas del mundo moderno
Observer Pattern
Design patterns - Observer Pattern
Design Pattern - Observer Pattern
Observer design pattern
Observer and Decorator Pattern
Konstantin slisenko - Design patterns
Design pattern-presentation
L05 Design Patterns
Observer Pattern
Js design patterns
Observer pattern
Observer Software Design Pattern
Kata terbitan
Design patterns 4 - observer pattern
Observer pattern
Observer Pattern Khali Young 2006 Aug
Design patterns: observer pattern
Observer design pattern
Design pattern - Software Engineering
Juan carlos briquet: Siete maravillas del mundo moderno
Publicidad

Similar a Observer design pattern (20)

PPTX
Observer: Patrón de diseño
DOCX
Patron sw observer
PPTX
Patrones de diseño
PDF
Java Listeners
PPTX
DOCX
Patrones de diseño
PPTX
Implementación y adaptación de patrones de diseño
PPT
Patrones de diseño - Henry Vallejo
PPT
Patron MVC en el desarrollo de aplicaciones.ppt
PPT
Patrones de diseño - Daniel E. Jaramillo
PPT
Prog.orientada a objeto
PPTX
01 - Analisis Orientado a Objetos presentacion
PDF
INFOGRAFIA.pdf
DOCX
Patron Observer
PDF
Proxy observer patrones
PPTX
PROGRAMACIÓN ORIENTADA A OBJETOS
PPT
Principios poo
PDF
Practica retro java 28102013
PPT
Exponer yony y estefany
Observer: Patrón de diseño
Patron sw observer
Patrones de diseño
Java Listeners
Patrones de diseño
Implementación y adaptación de patrones de diseño
Patrones de diseño - Henry Vallejo
Patron MVC en el desarrollo de aplicaciones.ppt
Patrones de diseño - Daniel E. Jaramillo
Prog.orientada a objeto
01 - Analisis Orientado a Objetos presentacion
INFOGRAFIA.pdf
Patron Observer
Proxy observer patrones
PROGRAMACIÓN ORIENTADA A OBJETOS
Principios poo
Practica retro java 28102013
Exponer yony y estefany
Publicidad

Más de Yenifer Castrillon (10)

PDF
Entrega final check on
PPTX
PPTX
PDF
Pre entrega check - on
PPTX
Gettin ready to bid
PPTX
PPTX
Check - on
PPTX
Presentation
PPTX
PPTX
Java 8 collections
Entrega final check on
Pre entrega check - on
Gettin ready to bid
Check - on
Presentation
Java 8 collections

Último (20)

PDF
Estadística Aplicada a la Psicología y Ciencias de la Salud Ccesa.pdf
PPTX
Programa analitico 2024-2025 Jardín de niños Ramón Gonzáles Villarreal. T.M. ...
PPTX
higiene-y-seguridad-industrial salud ocupacional.pptx
PDF
Las Matematicas y el Pensamiento Cientifico SE3 Ccesa007.pdf
DOCX
Fisiopatologia bdjdbd resumen de cierta parte
PDF
Retirate Joven y Rico - Robert Kiyosaki Ccesa007.pdf
PDF
CUIDADOS DE PERIOPERATORIO I-ENFERMERIA I
PDF
Cuaderno_Castellano_6°_grado.pdf 000000000000000001
PDF
Lo que hacen los Mejores Profesores de la Universidad - Ken Bain Ccesa007.pdf
PDF
Házlo con Miedo - Scott Allan Ccesa007.pdf
PDF
4° Dosificación anual (2025-2026) - Profe Diaz.pdf
PDF
GUÍA INTEGRADA PROMOCIÓN HORIZONTAL 2024-2025 (1).pdf
PDF
Problemas de Algebra Pre-Universitaria Ccesa007.pdf
PDF
Teología de la misión Ramiro Pellitero.pdf
PDF
200514 Colombia hacia una sociedad del conocimiento vol I_CC.pdf
PDF
Andaluz. Manual de Derecho Ambiental - Instituto de Investigación y Gestión T...
PPTX
RCP avanzado_Luis Minaya_ Septiembre 25.pptx
PDF
Acompanamiento-de-familias-en-la-construccion-de-proyectos-de-vida.pdf
PDF
El Seminario 23. El sinthome [Jacques Lacan].pdf
PDF
Manejo del paciente politraumatizado (2).pdf
Estadística Aplicada a la Psicología y Ciencias de la Salud Ccesa.pdf
Programa analitico 2024-2025 Jardín de niños Ramón Gonzáles Villarreal. T.M. ...
higiene-y-seguridad-industrial salud ocupacional.pptx
Las Matematicas y el Pensamiento Cientifico SE3 Ccesa007.pdf
Fisiopatologia bdjdbd resumen de cierta parte
Retirate Joven y Rico - Robert Kiyosaki Ccesa007.pdf
CUIDADOS DE PERIOPERATORIO I-ENFERMERIA I
Cuaderno_Castellano_6°_grado.pdf 000000000000000001
Lo que hacen los Mejores Profesores de la Universidad - Ken Bain Ccesa007.pdf
Házlo con Miedo - Scott Allan Ccesa007.pdf
4° Dosificación anual (2025-2026) - Profe Diaz.pdf
GUÍA INTEGRADA PROMOCIÓN HORIZONTAL 2024-2025 (1).pdf
Problemas de Algebra Pre-Universitaria Ccesa007.pdf
Teología de la misión Ramiro Pellitero.pdf
200514 Colombia hacia una sociedad del conocimiento vol I_CC.pdf
Andaluz. Manual de Derecho Ambiental - Instituto de Investigación y Gestión T...
RCP avanzado_Luis Minaya_ Septiembre 25.pptx
Acompanamiento-de-familias-en-la-construccion-de-proyectos-de-vida.pdf
El Seminario 23. El sinthome [Jacques Lacan].pdf
Manejo del paciente politraumatizado (2).pdf

Observer design pattern

  • 2. DESING PATTERN Los Patrones de diseño son herramientas para solucionar problemas de Diseño enfocados al desarrollo de software, estos patrones deben ser reusables permitiendo así que sean adaptados a diferentes problemáticas. Existen 3 grupos de patrones:  Creacionales: Giran en torno a la creación de Objetos  Estructurales: Se enfocan en la estructura de clases y objetos que las componen  De Comportamiento: Definen el modo en que las clases y objetos son relacionados, el comportamiento he interacción entre ellos.
  • 3. OBSERVER Es un patrón de comportamiento permite actualizar automáticamente el estado de un objeto dependiendo del estado de un objeto principal, cuando el objeto principal cambia sus objetos dependientes se actualizan.
  • 5. SIGNIFICADO LINEAS (#) Los atributos/operaciones protegidos están visibles para las clases derivadas de la original.
  • 6. PARTICIPANTES Tendremos sujetos concretos cuyos cambios pueden resultar interesantes a otros y observadores a los que al menos es interesa estar pendientes de un elemento y en un momento dado, reaccionar ante sus notificaciones de cambio. Todos los sujetos tienen en común que un conjunto de objetos quieren estar pendientes de ellos. Cualquier elemento que quiera ser observado tiene que permitir indicar: 1. “Estoy interesado en tus cambios”. 2. “Ya no estoy interesado en tus cambios”.
  • 7. El observable tiene que tener, además, un mecanismo de aviso a los interesados.  Sujeto (Subject): El sujeto proporciona una interfaz para agregar (attach) y eliminar (detach) observadores. El Sujeto conoce a todos sus observadores.  Observador (Observer): Define el método que usa el sujeto para notificar cambios en su estado (update/notify).
  • 8.  Sujeto Concreto (ConcreteSubject): Mantiene el estado de interés para los observadores concretos y los notifica cuando cambia su estado. No tienen porque ser elementos de la misma jerarquía.  Observador Concreto (ConcreteObserver): Mantiene una referencia al sujeto concreto e implementa la interfaz de actualización, es decir, guardan la referencia del objeto que observan, así en caso de ser notificados de algún cambio, pueden preguntar sobre este cambio.
  • 9. METODOS IMORTANTES addObserver (Observador o): Añadir observadores en el conjunto de observadores de este tema u objeto observalbel. deleteObserver (Observador o): Borrar observadores en el conjunto de los observadores. hasChanged (): Comprobar si el objeto ha cambiado. clearChanged (): Este método indicará que sujeto no tiene cambios o todos los observadores ha sido notificada cuando se realizan cambios. notifyObservers (): Notificar a todos los observadores si el objeto ha cambiado. Update (Observable Ob, Object arg): Este metodo es llamado cuando el sujeto se cambia. Interfaz pública Observador: Cualquier clase que implemente esta interfaz debe ser notificado cuando el objeto sujeto o cambiar su estado observable.
  • 11. PROBLEMA Cuando tenemos una dependencia de 1 a muchos entre objetos, y se espera que cuando el estado de un objeto cambie, todos los objetos dependientes de este también cambien de forma automática. EJEMPLO: Se tiene una aplicación de venta de productos administrada por diferentes vendedores con diferentes aplicativos, se espera que cada vez que cambie la cantidad de productos disponibles, la aplicación de cada vendedor automáticamente actualicé el modulo de ventas con los nuevos.
  • 12. SOLUCIÓN Se aplica el patrón observador para desacoplar la clase que contenga objetos dependientes, estableciendo relaciones entre los objetos, para esto se tiene una clase SujetoConcreto que será el objeto principal y tendremos los objetos cliente o dependientes que serian de clase ObservadorConcreto, cuando el estado del SujetoConcreto cambia, se envía una señal a cada uno de sus Observadores y estos automáticamente cambian su estado basados en el estado del objeto principal.
  • 13. EJEMPLO 1 Patrón Observer utiliza tres clases de actores. Asunto, Observador y cliente. El sujeto es un objeto que tiene métodos para unir y separar los observadores a un objeto de cliente. Hemos creado una clase abstracta Observador y una clase concreta Asunto que se está extendiendo la clase Observador. ObserverPatternDemo , nuestra clase de demostración, utilizará Asunto objeto de clase y concreto para mostrar el patrón de observador en la acción.
  • 15. SOLUCIÓN Paso 1 – Crear la clase Subject. Paso 2 - Crear la clase Observer. Paso 3 – Crear las clases de concreteObserver, en este caso: hexaObserver, BinaryObserver y OctalObserver. Paso 4 – Crear la clase ObserverPatternDemo.
  • 16. EJEMPLO 2 Usted tiene un préstamo en el que la tasa de interés está sujeta a cambios y cuando cambia, Préstamo notifique al periódico o Internet los medios de comunicación para mostrar la nueva tasa de interés del préstamo. Para implementar este tenemos un Asunto de interfaz que contiene métodos para añadir, eliminar y notificar a los observadores y un Observador de interfaz que contiene la actualización (interés int) método que será llamado por la aplicación Asunto cuando los cambios de tipos de interés.
  • 17. SOLUCIÓN Paso 1 – Crear la interfaz Observador. Paso 2 - Crear la interfaz Asunto. Paso 3 – Crear la clase Prestamo que extiende de la interface Asunto. Paso 4 – Crear la clase Newspaper e Internet que extienden de la interface Observador. Paso 5 – Crear la clase ObserverTest la cual contiene el main. RESULTADO: