SlideShare una empresa de Scribd logo
Observer: Patrón de diseño
Alberto Rodríguez Villalobos
Ingeniería en Software 2
Este patrón define una relación uno a muchos, entre un grupo de objetos. Cuando un
objeto cambia su estado, todos sus dependientes son notificados y actualizados
automáticamente.
Otros nombres: Dependents, Publish-Suscribe
Descripción
 Los objetos claves son “Subject” y “Observer”.
 La motivación de este patrón es la reutilización.
 Puede no haber relación directa entre objetos.
 El tipo de interacción es conocida como Publicar-Suscribir.
 El subject es publicador de notificaciones.
 Cualquier número de observers puedes suscribirse para recibir notificaciones.
Colaboradores
 Subject:
-Conoce sus Observers. Cualquier número de observes pueden observar a Subject.
-Provee una interfaz para adjuntar y separar objetos Observer.
 Observer:
-Define una interfaz de actualización para los objetos Observer que deben ser notificados de los cambios en el Subject.
 Concrete_Subject:
-Almacena estados de interés para los objetos Concrete_Observer.
-Envía una notificación a sus Observers cuando el estado cambia.
 Concrete_Observer:
-Mantiene referencia de objetos Concrete_Subject.
-Almacena los estados que deben ser consistentes con los Subject.
-Implementa la actualización del Observer.
Aplicabilidad
 Cuando una abstracción tiene 2 aspectos o más, uno dependiente del otro.
 Cuando un objeto requiere el cambio de otros, y no se sabe cuántos objetos
necesitan ser cambiados.
 Cuando un objeto debe notificar a otros objetos sin estimar cuantos son estos.
Ventajas y desventajas
 EL patrón Observer permite variar los sujetos y los observadores independientemente. Se puede rehusar
sujetos sin el rehúso de observadores y viceversa.
 Permite agregar observadores sin modificar el sujeto o los observadores.
 Acoplamiento abstracto entre Subject y Observer. Todo lo que un objeto sabe de sus observadores es que
tiene una lista de objetos que satisfacen la interfaz Observer. Con lo que podrían incluso pertenecer a dos
capas distintas de la arquitectura de la aplicación.
 No se especifica el receptor de una actualización. Se envía a todos los objetos interesados
 Actualizaciones inesperadas. Se podrían producir actualizaciones en cascada muy ineficientes.
Observer: Patrón de diseño

Más contenido relacionado

La actualidad más candente

Casos de Uso en UML
Casos de Uso en UMLCasos de Uso en UML
Casos de Uso en UML
Henry Cuascota
 
Presentacion Patrones Creacionales
Presentacion Patrones CreacionalesPresentacion Patrones Creacionales
Presentacion Patrones Creacionales
Sergio David Fernández
 
Tm03 modelo de casos de uso
Tm03 modelo de casos de usoTm03 modelo de casos de uso
Tm03 modelo de casos de usoJulio Pari
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosnenyta08
 
Base de Datos Orientada a Objetos
Base de Datos Orientada a ObjetosBase de Datos Orientada a Objetos
Base de Datos Orientada a Objetos
Andrés Felipe Montoya Ríos
 
6.modelado de los requerimientos escenarios y clases
6.modelado de los requerimientos  escenarios y clases6.modelado de los requerimientos  escenarios y clases
6.modelado de los requerimientos escenarios y clases
Ramiro Estigarribia Canese
 
Modelado de analisis para aplicaciones web
Modelado de analisis para aplicaciones webModelado de analisis para aplicaciones web
Modelado de analisis para aplicaciones webMaritzaD
 
03 7n2is trabajo-interfaz usuario
03 7n2is trabajo-interfaz usuario03 7n2is trabajo-interfaz usuario
03 7n2is trabajo-interfaz usuario
Manuel Mujica
 
Exposición Diagrama de Clases
Exposición Diagrama de ClasesExposición Diagrama de Clases
Exposición Diagrama de Clases
Universidad Técnica del Norte
 
Especificación de requisitos de un sitio web
Especificación de requisitos de un sitio webEspecificación de requisitos de un sitio web
Especificación de requisitos de un sitio webRafael Pedraza-Jimenez
 
Requerimientos de Usabilidad
Requerimientos de  UsabilidadRequerimientos de  Usabilidad
Requerimientos de Usabilidad
gcaicedo
 
MVC
MVCMVC
Programación del lado del cliente
Programación del lado del clienteProgramación del lado del cliente
Programación del lado del cliente
Gabriel Mondragón
 
Diagrama de Casos de uso
Diagrama de Casos de usoDiagrama de Casos de uso
Diagrama de Casos de uso
Rene Guaman-Quinche
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentesmartin
 
Sesion 3 2 modelo de analisis
Sesion 3 2 modelo de analisisSesion 3 2 modelo de analisis
Sesion 3 2 modelo de analisisJulio Pari
 
Diagrama UML Casos de Uso
Diagrama UML Casos de UsoDiagrama UML Casos de Uso
Diagrama UML Casos de Uso
José Antonio Sandoval Acosta
 

La actualidad más candente (20)

Casos de Uso en UML
Casos de Uso en UMLCasos de Uso en UML
Casos de Uso en UML
 
Presentacion Patrones Creacionales
Presentacion Patrones CreacionalesPresentacion Patrones Creacionales
Presentacion Patrones Creacionales
 
Tm03 modelo de casos de uso
Tm03 modelo de casos de usoTm03 modelo de casos de uso
Tm03 modelo de casos de uso
 
Ieee 830
Ieee 830Ieee 830
Ieee 830
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
Base de Datos Orientada a Objetos
Base de Datos Orientada a ObjetosBase de Datos Orientada a Objetos
Base de Datos Orientada a Objetos
 
6.modelado de los requerimientos escenarios y clases
6.modelado de los requerimientos  escenarios y clases6.modelado de los requerimientos  escenarios y clases
6.modelado de los requerimientos escenarios y clases
 
DIAGRAMAS DE CLASE
DIAGRAMAS DE CLASEDIAGRAMAS DE CLASE
DIAGRAMAS DE CLASE
 
Modelado de analisis para aplicaciones web
Modelado de analisis para aplicaciones webModelado de analisis para aplicaciones web
Modelado de analisis para aplicaciones web
 
03 7n2is trabajo-interfaz usuario
03 7n2is trabajo-interfaz usuario03 7n2is trabajo-interfaz usuario
03 7n2is trabajo-interfaz usuario
 
Exposición Diagrama de Clases
Exposición Diagrama de ClasesExposición Diagrama de Clases
Exposición Diagrama de Clases
 
Especificación de requisitos de un sitio web
Especificación de requisitos de un sitio webEspecificación de requisitos de un sitio web
Especificación de requisitos de un sitio web
 
Requerimientos de Usabilidad
Requerimientos de  UsabilidadRequerimientos de  Usabilidad
Requerimientos de Usabilidad
 
MVC
MVCMVC
MVC
 
Software proyecto
Software proyectoSoftware proyecto
Software proyecto
 
Programación del lado del cliente
Programación del lado del clienteProgramación del lado del cliente
Programación del lado del cliente
 
Diagrama de Casos de uso
Diagrama de Casos de usoDiagrama de Casos de uso
Diagrama de Casos de uso
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentes
 
Sesion 3 2 modelo de analisis
Sesion 3 2 modelo de analisisSesion 3 2 modelo de analisis
Sesion 3 2 modelo de analisis
 
Diagrama UML Casos de Uso
Diagrama UML Casos de UsoDiagrama UML Casos de Uso
Diagrama UML Casos de Uso
 

Similar a Observer: Patrón de diseño

Observer
ObserverObserver
Observer design pattern
Observer design patternObserver design pattern
Observer design pattern
Yenifer Castrillon
 
Observer design pattern
Observer design patternObserver design pattern
Observer design pattern
Yenifer Castrillon
 
Patron observador
Patron observadorPatron observador
Proxy observer patrones
Proxy observer patronesProxy observer patrones
Proxy observer patrones
Carlos Coronel
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
Edsel Barbosa González
 
Patrón Observer
Patrón ObserverPatrón Observer
Patrón Observer
Autentia
 
Java beans
Java beansJava beans
Java beans
Edisson Naula
 
Patron Observer
Patron ObserverPatron Observer
Patron Observer
Camila Arbelaez
 
Modelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasModelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capas
Alex Uhu Colli
 
React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?
Adrian Diaz Cervera
 
Patrones de diseño - Henry Vallejo
Patrones de diseño - Henry VallejoPatrones de diseño - Henry Vallejo
Patrones de diseño - Henry Vallejo2008PA2Info3
 

Similar a Observer: Patrón de diseño (13)

Observer
ObserverObserver
Observer
 
Observer design pattern
Observer design patternObserver design pattern
Observer design pattern
 
Observer design pattern
Observer design patternObserver design pattern
Observer design pattern
 
Patron sw observer
Patron sw observerPatron sw observer
Patron sw observer
 
Patron observador
Patron observadorPatron observador
Patron observador
 
Proxy observer patrones
Proxy observer patronesProxy observer patrones
Proxy observer patrones
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Patrón Observer
Patrón ObserverPatrón Observer
Patrón Observer
 
Java beans
Java beansJava beans
Java beans
 
Patron Observer
Patron ObserverPatron Observer
Patron Observer
 
Modelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasModelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capas
 
React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?
 
Patrones de diseño - Henry Vallejo
Patrones de diseño - Henry VallejoPatrones de diseño - Henry Vallejo
Patrones de diseño - Henry Vallejo
 

Más de Luis Alberto Rodriguez

Kumbia php
Kumbia phpKumbia php
Afilar la sierra Séptimo Hábito
Afilar la sierra Séptimo Hábito Afilar la sierra Séptimo Hábito
Afilar la sierra Séptimo Hábito
Luis Alberto Rodriguez
 
La generación del repertorio americano, Vanguardismo, Literatura Costarricence
La generación del repertorio americano, Vanguardismo, Literatura CostarricenceLa generación del repertorio americano, Vanguardismo, Literatura Costarricence
La generación del repertorio americano, Vanguardismo, Literatura Costarricence
Luis Alberto Rodriguez
 
Microsoft Project
Microsoft ProjectMicrosoft Project
Microsoft Project
Luis Alberto Rodriguez
 

Más de Luis Alberto Rodriguez (6)

Kumbia php
Kumbia phpKumbia php
Kumbia php
 
Afilar la sierra Séptimo Hábito
Afilar la sierra Séptimo Hábito Afilar la sierra Séptimo Hábito
Afilar la sierra Séptimo Hábito
 
La generación del repertorio americano, Vanguardismo, Literatura Costarricence
La generación del repertorio americano, Vanguardismo, Literatura CostarricenceLa generación del repertorio americano, Vanguardismo, Literatura Costarricence
La generación del repertorio americano, Vanguardismo, Literatura Costarricence
 
Microsoft Project
Microsoft ProjectMicrosoft Project
Microsoft Project
 
Scrum Metodologia Agil
Scrum Metodologia AgilScrum Metodologia Agil
Scrum Metodologia Agil
 
Yii vs codeigneiter
Yii vs codeigneiterYii vs codeigneiter
Yii vs codeigneiter
 

Último

PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 

Último (6)

PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 

Observer: Patrón de diseño

  • 1. Observer: Patrón de diseño Alberto Rodríguez Villalobos Ingeniería en Software 2
  • 2. Este patrón define una relación uno a muchos, entre un grupo de objetos. Cuando un objeto cambia su estado, todos sus dependientes son notificados y actualizados automáticamente. Otros nombres: Dependents, Publish-Suscribe
  • 3. Descripción  Los objetos claves son “Subject” y “Observer”.  La motivación de este patrón es la reutilización.  Puede no haber relación directa entre objetos.  El tipo de interacción es conocida como Publicar-Suscribir.  El subject es publicador de notificaciones.  Cualquier número de observers puedes suscribirse para recibir notificaciones.
  • 4. Colaboradores  Subject: -Conoce sus Observers. Cualquier número de observes pueden observar a Subject. -Provee una interfaz para adjuntar y separar objetos Observer.  Observer: -Define una interfaz de actualización para los objetos Observer que deben ser notificados de los cambios en el Subject.  Concrete_Subject: -Almacena estados de interés para los objetos Concrete_Observer. -Envía una notificación a sus Observers cuando el estado cambia.  Concrete_Observer: -Mantiene referencia de objetos Concrete_Subject. -Almacena los estados que deben ser consistentes con los Subject. -Implementa la actualización del Observer.
  • 5.
  • 6. Aplicabilidad  Cuando una abstracción tiene 2 aspectos o más, uno dependiente del otro.  Cuando un objeto requiere el cambio de otros, y no se sabe cuántos objetos necesitan ser cambiados.  Cuando un objeto debe notificar a otros objetos sin estimar cuantos son estos.
  • 7. Ventajas y desventajas  EL patrón Observer permite variar los sujetos y los observadores independientemente. Se puede rehusar sujetos sin el rehúso de observadores y viceversa.  Permite agregar observadores sin modificar el sujeto o los observadores.  Acoplamiento abstracto entre Subject y Observer. Todo lo que un objeto sabe de sus observadores es que tiene una lista de objetos que satisfacen la interfaz Observer. Con lo que podrían incluso pertenecer a dos capas distintas de la arquitectura de la aplicación.  No se especifica el receptor de una actualización. Se envía a todos los objetos interesados  Actualizaciones inesperadas. Se podrían producir actualizaciones en cascada muy ineficientes.