SlideShare a Scribd company logo
1 of 8
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

More Related Content

What's hot

Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.nayis2010
 
Diagramas De Estado
Diagramas De EstadoDiagramas De Estado
Diagramas De Estadoguest5ed375
 
Diagrama UML de Clases
Diagrama UML de ClasesDiagrama UML de Clases
Diagrama UML de ClasesAdal Dg
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estadosstill01
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetosstill01
 
3. modelo entidad relación extendido
3. modelo entidad relación extendido3. modelo entidad relación extendido
3. modelo entidad relación extendidoGalo Anzules
 
Patrones de diseño y frameworks
Patrones de diseño y frameworksPatrones de diseño y frameworks
Patrones de diseño y frameworksDaniel Cam Urquizo
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herenciajlmanmons
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacionlongojose
 
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLUnidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLCindy Adriana Bohórquez Santana
 
Mapa conceptual uml z1-
Mapa conceptual uml  z1-Mapa conceptual uml  z1-
Mapa conceptual uml z1-karlanm07
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de softwareIker Canarias
 
Diagramas clases presentacion
Diagramas clases presentacionDiagramas clases presentacion
Diagramas clases presentacionjosebrandon24
 
Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)programadorjavablog
 

What's hot (20)

Bases de datos orientadas a objetos
Bases de datos orientadas a objetosBases de datos orientadas a objetos
Bases de datos orientadas a objetos
 
Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.
 
Diagramas De Estado
Diagramas De EstadoDiagramas De Estado
Diagramas De Estado
 
Diagrama UML de Clases
Diagrama UML de ClasesDiagrama UML de Clases
Diagrama UML de Clases
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estados
 
Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 
3. modelo entidad relación extendido
3. modelo entidad relación extendido3. modelo entidad relación extendido
3. modelo entidad relación extendido
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
 
Patrones de diseño y frameworks
Patrones de diseño y frameworksPatrones de diseño y frameworks
Patrones de diseño y frameworks
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Presentacion Patrones Creacionales
Presentacion Patrones CreacionalesPresentacion Patrones Creacionales
Presentacion Patrones Creacionales
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herencia
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
 
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLUnidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
 
Mapa conceptual uml z1-
Mapa conceptual uml  z1-Mapa conceptual uml  z1-
Mapa conceptual uml z1-
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Diagramas clases presentacion
Diagramas clases presentacionDiagramas clases presentacion
Diagramas clases presentacion
 
Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)
 
colecciones en java
colecciones en javacolecciones en java
colecciones en java
 

Similar to Observer: Patrón de diseño

Similar to 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
 

More from Luis Alberto Rodriguez

More from 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
 

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.