SlideShare una empresa de Scribd logo
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.
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.
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

La actualidad más candente

2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventos2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventos
Camilo Herreño
 
Variables scrath
Variables   scrathVariables   scrath
Variables scrath
Joanvillas1
 
Identificadores, palabras reservadas y tipos de datos [JAVA]
Identificadores, palabras reservadas y tipos de datos [JAVA]Identificadores, palabras reservadas y tipos de datos [JAVA]
Identificadores, palabras reservadas y tipos de datos [JAVA]Hack '
 
Eventos tpa walter isc
Eventos tpa walter iscEventos tpa walter isc
Eventos tpa walter iscWalter H
 
Programación orientada a objetos atributos metodos y eventos
Programación orientada a objetos atributos metodos y eventosProgramación orientada a objetos atributos metodos y eventos
Programación orientada a objetos atributos metodos y eventos
Felipe Ardila
 

La actualidad más candente (7)

2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventos2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventos
 
Memento
MementoMemento
Memento
 
Variables scrath
Variables   scrathVariables   scrath
Variables scrath
 
Identificadores, palabras reservadas y tipos de datos [JAVA]
Identificadores, palabras reservadas y tipos de datos [JAVA]Identificadores, palabras reservadas y tipos de datos [JAVA]
Identificadores, palabras reservadas y tipos de datos [JAVA]
 
Eventos tpa walter isc
Eventos tpa walter iscEventos tpa walter isc
Eventos tpa walter isc
 
Programación orientada a objetos atributos metodos y eventos
Programación orientada a objetos atributos metodos y eventosProgramación orientada a objetos atributos metodos y eventos
Programación orientada a objetos atributos metodos y eventos
 
Manejoevento
ManejoeventoManejoevento
Manejoevento
 

Destacado

Nuevos metodos en java8
Nuevos metodos en java8Nuevos metodos en java8
Nuevos metodos en java8
Julian Restrepo Correa
 
Expresiones lambda
Expresiones lambdaExpresiones lambda
Java 8 collections
Java 8  collectionsJava 8  collections
Java 8 collections
Yenifer Castrillon
 
Command
CommandCommand
Patrón singleton
Patrón singletonPatrón singleton
Sobrecarga - sobre escricura y Clases abstractas
Sobrecarga - sobre escricura y Clases abstractasSobrecarga - sobre escricura y Clases abstractas
Sobrecarga - sobre escricura y Clases abstractas
Andres Bedoya Tobon
 
Herencia y Casting
Herencia y CastingHerencia y Casting
Herencia y Casting
Andres Bedoya Tobon
 
Observer design pattern
Observer design patternObserver design pattern
Observer design pattern
Yenifer Castrillon
 
Aprendiendo uml en 24 horas
Aprendiendo uml en 24 horasAprendiendo uml en 24 horas
Aprendiendo uml en 24 horasOscar Eduardo
 
Framework Android
Framework AndroidFramework Android
Framework Android
Oscar Eduardo
 
Manual De Configuración Ftp
Manual De Configuración FtpManual De Configuración Ftp
Manual De Configuración Ftp
Andres Bedoya Tobon
 
Introducción aplicaciones móviles con Android
Introducción aplicaciones móviles con AndroidIntroducción aplicaciones móviles con Android
Introducción aplicaciones móviles con Android
Andres Bedoya Tobon
 
Presentacion 01 fundamentos
Presentacion 01 fundamentosPresentacion 01 fundamentos
Presentacion 01 fundamentos
Andres Bedoya Tobon
 

Destacado (20)

Nuevos metodos en java8
Nuevos metodos en java8Nuevos metodos en java8
Nuevos metodos en java8
 
Expresiones lambda
Expresiones lambdaExpresiones lambda
Expresiones lambda
 
Exposision copia
Exposision   copiaExposision   copia
Exposision copia
 
Exposision
ExposisionExposision
Exposision
 
Java 8 collections
Java 8  collectionsJava 8  collections
Java 8 collections
 
Command
CommandCommand
Command
 
Patrón singleton
Patrón singletonPatrón singleton
Patrón singleton
 
Sobrecarga - sobre escricura y Clases abstractas
Sobrecarga - sobre escricura y Clases abstractasSobrecarga - sobre escricura y Clases abstractas
Sobrecarga - sobre escricura y Clases abstractas
 
Herencia y Casting
Herencia y CastingHerencia y Casting
Herencia y Casting
 
Observer design pattern
Observer design patternObserver design pattern
Observer design pattern
 
Notacion uml
Notacion umlNotacion uml
Notacion uml
 
Isw
IswIsw
Isw
 
Presentacion rup
Presentacion rupPresentacion rup
Presentacion rup
 
Iswii
IswiiIswii
Iswii
 
Iswiii
IswiiiIswiii
Iswiii
 
Aprendiendo uml en 24 horas
Aprendiendo uml en 24 horasAprendiendo uml en 24 horas
Aprendiendo uml en 24 horas
 
Framework Android
Framework AndroidFramework Android
Framework Android
 
Manual De Configuración Ftp
Manual De Configuración FtpManual De Configuración Ftp
Manual De Configuración Ftp
 
Introducción aplicaciones móviles con Android
Introducción aplicaciones móviles con AndroidIntroducción aplicaciones móviles con Android
Introducción aplicaciones móviles con Android
 
Presentacion 01 fundamentos
Presentacion 01 fundamentosPresentacion 01 fundamentos
Presentacion 01 fundamentos
 

Similar a Observer design pattern

Observer: Patrón de diseño
Observer: Patrón de diseñoObserver: Patrón de diseño
Observer: Patrón de diseño
Luis Alberto Rodriguez
 
Observer
ObserverObserver
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
Edsel Barbosa González
 
Java Listeners
Java ListenersJava Listeners
Java ListenersMagikJames
 
Design patterns
Design patternsDesign patterns
Implementación y adaptación de patrones de diseño
Implementación y adaptación de patrones de diseñoImplementación y adaptación de patrones de diseño
Implementación y adaptación de patrones de diseño
Ju Pe
 
Patrones de diseño - Henry Vallejo
Patrones de diseño - Henry VallejoPatrones de diseño - Henry Vallejo
Patrones de diseño - Henry Vallejo2008PA2Info3
 
Patrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. JaramilloPatrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. Jaramillo2008PA2Info3
 
Prog.orientada a objeto
Prog.orientada a objetoProg.orientada a objeto
Prog.orientada a objeto
Ruben Balza Moya
 
INFOGRAFIA.pdf
INFOGRAFIA.pdfINFOGRAFIA.pdf
INFOGRAFIA.pdf
FranciscoZurisaddaiM
 
Proxy observer patrones
Proxy observer patronesProxy observer patrones
Proxy observer patrones
Carlos Coronel
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
GREINDER MARCHENA & LIZ VASQUEZ
 
Practica retro java 28102013
Practica retro java 28102013Practica retro java 28102013
Practica retro java 28102013Edgar Rosas
 
Fundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetosFundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetosEduardo Galindo
 
Conceptos básicos de programación orientada a objetos
Conceptos básicos de programación orientada a objetosConceptos básicos de programación orientada a objetos
Conceptos básicos de programación orientada a objetos
Manuel Murillo
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
Israel Rey
 

Similar a Observer design pattern (20)

Observer: Patrón de diseño
Observer: Patrón de diseñoObserver: Patrón de diseño
Observer: Patrón de diseño
 
Observer
ObserverObserver
Observer
 
Patron sw observer
Patron sw observerPatron sw observer
Patron sw observer
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Java Listeners
Java ListenersJava Listeners
Java Listeners
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Implementación y adaptación de patrones de diseño
Implementación y adaptación de patrones de diseñoImplementación y adaptación de patrones de diseño
Implementación y adaptación de patrones de diseño
 
Patrones de diseño - Henry Vallejo
Patrones de diseño - Henry VallejoPatrones de diseño - Henry Vallejo
Patrones de diseño - Henry Vallejo
 
Patrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. JaramilloPatrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. Jaramillo
 
Prog.orientada a objeto
Prog.orientada a objetoProg.orientada a objeto
Prog.orientada a objeto
 
INFOGRAFIA.pdf
INFOGRAFIA.pdfINFOGRAFIA.pdf
INFOGRAFIA.pdf
 
Proxy observer patrones
Proxy observer patronesProxy observer patrones
Proxy observer patrones
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Principios poo
Principios pooPrincipios poo
Principios poo
 
Practica retro java 28102013
Practica retro java 28102013Practica retro java 28102013
Practica retro java 28102013
 
Exponer yony y estefany
Exponer  yony y estefanyExponer  yony y estefany
Exponer yony y estefany
 
Fundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetosFundamentos del análisis orientado a objetos
Fundamentos del análisis orientado a objetos
 
Conceptos básicos de programación orientada a objetos
Conceptos básicos de programación orientada a objetosConceptos básicos de programación orientada a objetos
Conceptos básicos de programación orientada a objetos
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 

Más de Yenifer Castrillon

Entrega final check on
Entrega final  check onEntrega final  check on
Entrega final check on
Yenifer Castrillon
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
Chapter 4Chapter 4
Pre entrega check - on
Pre entrega check - onPre entrega check - on
Pre entrega check - on
Yenifer Castrillon
 
Gettin ready to bid
Gettin ready to bidGettin ready to bid
Gettin ready to bid
Yenifer Castrillon
 
Check-on
Check-onCheck-on
Check - on
Check - onCheck - on
Check - on
Yenifer Castrillon
 
Presentation
PresentationPresentation
Presentation
Yenifer Castrillon
 
Tecno app
Tecno appTecno app

Más de Yenifer Castrillon (9)

Entrega final check on
Entrega final  check onEntrega final  check on
Entrega final check on
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
 
Pre entrega check - on
Pre entrega check - onPre entrega check - on
Pre entrega check - on
 
Gettin ready to bid
Gettin ready to bidGettin ready to bid
Gettin ready to bid
 
Check-on
Check-onCheck-on
Check-on
 
Check - on
Check - onCheck - on
Check - on
 
Presentation
PresentationPresentation
Presentation
 
Tecno app
Tecno appTecno app
Tecno app
 

Último

Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
Demetrio Ccesa Rayme
 
Introducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BIIntroducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BI
arleyo2006
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
rosannatasaycoyactay
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
cintiat3400
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
GallardoJahse
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
HuallpaSamaniegoSeba
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Demetrio Ccesa Rayme
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
20minutos
 
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
SandraPiza2
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
danitarb
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
Profes de Relideleón Apellidos
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
MauricioSnchez83
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
pablomarin116
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIAFICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
JavierMontero58
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
Edurne Navarro Bueno
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
https://gramadal.wordpress.com/
 

Último (20)

Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
 
Introducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BIIntroducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BI
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
 
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIAFICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
 

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.
  • 10. 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.
  • 11. 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.
  • 12. 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.
  • 13.
  • 14. 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.
  • 15. 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.
  • 16. 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: