SlideShare una empresa de Scribd logo
1 de 11
Patrón de Comportamiento


Chain of Responsibility

            Autores
     Hegykozi, Hernán Javier
        González, Javier
Chain of Responsibility

•   Propósito
•   Motivación, Aplicabilidad
•   Estructura, Participantes
•   Colaboraciones, Consecuencias
•   Implementación, Usos conocidos
Chain of Responsibility
Propósito

Evitar que el receptor se apodere por completo de la petición, y
dar oportunidades a otros receptores a contestar a la petición.
Chain of Responsibility
Motivación

La petición debe ser procesada por los receptores, lo cual quiere
   decir que, ésta petición queda al margen del uso exclusivo.

Pretendemos dar una mayor detalle y especificación a las
   peticiones generadas. Las peticiones serán filtradas por todos
   los receptores a medida que se van generando los resultados
   esperados.
Chain of Responsibility
Aplicabilidad

Se usa dicho patrón cuando:
    – Hay más de un objeto que pueden manejar una petición, y
      el manejador no se conoce a priori, sino que debería
      determinarse automáticamente.
    – Se quiere enviar una petición a un objeto entre varios sin
      especificar explícitamente el receptor.
    – El conjunto de objetos que pueden tratar una petición
      debería ser especificado dinámicamente.
Chain of Responsibility
Estructura
Chain of Responsibility
Participantes

Cliente: será el encargado de generar las peticiones que hayan
   de pasar por el manejador genérico.

Manejador: deberá estar compuesto por un interfaz donde se
  vayan a desarrollar las peticiones que genera el cliente.

Manejador específico: tratará la petición que le corresponda del
  cliente.
Chain of Responsibility
Colaboraciones

Cuando un cliente envía una petición, ésta se propaga a través
  de la cadena hasta que un objeto manejador específico se
  hace responsable de procesarla.
Chain of Responsibility
Consecuencias

 Reducción del acoplamiento
    Ni el receptor ni el emisor se conocen explícitamente. Un objeto sólo
     tiene que saber que una petición será manejada.
 Añade flexibilidad para asignar responsabilidades a objetos.
    Las responsabilidades de los mensajes pueden cambiar mediante la
     organización del proceso de ejecución.
 No se garantiza la recepción
    Puesto que no existe un receptor específico para los mensajes, éstos
     pueden quedarse sin procesar.
Chain of Responsibility
Implementación
 Implementación de la cadena sucesoria. Forma de hacerlo:
    Usando nuevos enlaces, con el patrón Composite.
    Usando los enlaces existentes.

 Conexión de los sucesores
    Los propios Manejadores Específicos serán los que se encargarán de
     reenviar la petición de forma incondicional. Las referencias deberán
     estar definidas.

 Representación de las peticiones
    Uso de paso de parámetros o variables mediante una función
     manejadora, o hacer uso de clases.
Chain of Responsibility
Usos conocidos

Podemos encontrar implementaciones del patrón hechas sobre:

 Manejadores de eventos sobre usuarios en bibliotecas.
 Editores gráficos.
 Manejadores de ayuda.

Más contenido relacionado

Similar a Patrón Chain of Responsibility

Similar a Patrón Chain of Responsibility (20)

Arquitectura cliente – servidor en internet
Arquitectura cliente – servidor en internetArquitectura cliente – servidor en internet
Arquitectura cliente – servidor en internet
 
Sistemas de gestion de calidad
Sistemas de gestion de calidadSistemas de gestion de calidad
Sistemas de gestion de calidad
 
Ccm #11 3 f
Ccm #11 3 fCcm #11 3 f
Ccm #11 3 f
 
Especificación de requisitos
Especificación de requisitosEspecificación de requisitos
Especificación de requisitos
 
Tontería enorme
Tontería enormeTontería enorme
Tontería enorme
 
Caso de Negocio
Caso de NegocioCaso de Negocio
Caso de Negocio
 
Metodologia de Sistemas
Metodologia de SistemasMetodologia de Sistemas
Metodologia de Sistemas
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Proyecto investigacion para habilitacion LSI
Proyecto investigacion para habilitacion LSIProyecto investigacion para habilitacion LSI
Proyecto investigacion para habilitacion LSI
 
6070_TRECALDE_00288.ppt
6070_TRECALDE_00288.ppt6070_TRECALDE_00288.ppt
6070_TRECALDE_00288.ppt
 
Cliente servidor
Cliente   servidorCliente   servidor
Cliente servidor
 
Ensayo Cliente Servidor
Ensayo Cliente ServidorEnsayo Cliente Servidor
Ensayo Cliente Servidor
 
Patron de Arquitectura Broker
Patron de Arquitectura BrokerPatron de Arquitectura Broker
Patron de Arquitectura Broker
 
TEMA 2
TEMA 2TEMA 2
TEMA 2
 
.
..
.
 
Usabilidad y ficha analisis
Usabilidad y ficha analisisUsabilidad y ficha analisis
Usabilidad y ficha analisis
 
Modelo cliente servidor
Modelo cliente servidor Modelo cliente servidor
Modelo cliente servidor
 
Introducción a aplicaciones web.
Introducción a aplicaciones web.Introducción a aplicaciones web.
Introducción a aplicaciones web.
 
Diapositiva final
Diapositiva finalDiapositiva final
Diapositiva final
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 

Patrón Chain of Responsibility

  • 1. Patrón de Comportamiento Chain of Responsibility Autores Hegykozi, Hernán Javier González, Javier
  • 2. Chain of Responsibility • Propósito • Motivación, Aplicabilidad • Estructura, Participantes • Colaboraciones, Consecuencias • Implementación, Usos conocidos
  • 3. Chain of Responsibility Propósito Evitar que el receptor se apodere por completo de la petición, y dar oportunidades a otros receptores a contestar a la petición.
  • 4. Chain of Responsibility Motivación La petición debe ser procesada por los receptores, lo cual quiere decir que, ésta petición queda al margen del uso exclusivo. Pretendemos dar una mayor detalle y especificación a las peticiones generadas. Las peticiones serán filtradas por todos los receptores a medida que se van generando los resultados esperados.
  • 5. Chain of Responsibility Aplicabilidad Se usa dicho patrón cuando: – Hay más de un objeto que pueden manejar una petición, y el manejador no se conoce a priori, sino que debería determinarse automáticamente. – Se quiere enviar una petición a un objeto entre varios sin especificar explícitamente el receptor. – El conjunto de objetos que pueden tratar una petición debería ser especificado dinámicamente.
  • 7. Chain of Responsibility Participantes Cliente: será el encargado de generar las peticiones que hayan de pasar por el manejador genérico. Manejador: deberá estar compuesto por un interfaz donde se vayan a desarrollar las peticiones que genera el cliente. Manejador específico: tratará la petición que le corresponda del cliente.
  • 8. Chain of Responsibility Colaboraciones Cuando un cliente envía una petición, ésta se propaga a través de la cadena hasta que un objeto manejador específico se hace responsable de procesarla.
  • 9. Chain of Responsibility Consecuencias  Reducción del acoplamiento  Ni el receptor ni el emisor se conocen explícitamente. Un objeto sólo tiene que saber que una petición será manejada.  Añade flexibilidad para asignar responsabilidades a objetos.  Las responsabilidades de los mensajes pueden cambiar mediante la organización del proceso de ejecución.  No se garantiza la recepción  Puesto que no existe un receptor específico para los mensajes, éstos pueden quedarse sin procesar.
  • 10. Chain of Responsibility Implementación  Implementación de la cadena sucesoria. Forma de hacerlo:  Usando nuevos enlaces, con el patrón Composite.  Usando los enlaces existentes.  Conexión de los sucesores  Los propios Manejadores Específicos serán los que se encargarán de reenviar la petición de forma incondicional. Las referencias deberán estar definidas.  Representación de las peticiones  Uso de paso de parámetros o variables mediante una función manejadora, o hacer uso de clases.
  • 11. Chain of Responsibility Usos conocidos Podemos encontrar implementaciones del patrón hechas sobre:  Manejadores de eventos sobre usuarios en bibliotecas.  Editores gráficos.  Manejadores de ayuda.