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

La actualidad más candente

La actualidad más candente (20)

Investigación de Operaciones 041 Análisis de Redes Terminología Básica Teoría...
Investigación de Operaciones 041 Análisis de Redes Terminología Básica Teoría...Investigación de Operaciones 041 Análisis de Redes Terminología Básica Teoría...
Investigación de Operaciones 041 Análisis de Redes Terminología Básica Teoría...
 
Arborescencia de ruta mas corta
Arborescencia de ruta mas cortaArborescencia de ruta mas corta
Arborescencia de ruta mas corta
 
Ejemplos acid
Ejemplos acidEjemplos acid
Ejemplos acid
 
Casos uso uml
Casos uso umlCasos uso uml
Casos uso uml
 
Ruteo
RuteoRuteo
Ruteo
 
1.método simplex para la solución de problemas de operaciones de investigaciones
1.método simplex para la solución de problemas de operaciones de investigaciones1.método simplex para la solución de problemas de operaciones de investigaciones
1.método simplex para la solución de problemas de operaciones de investigaciones
 
Diagramas de caso de uso
Diagramas de caso de usoDiagramas de caso de uso
Diagramas de caso de uso
 
Programacion lineal
Programacion linealProgramacion lineal
Programacion lineal
 
Diagrama de actividades
Diagrama de actividadesDiagrama de actividades
Diagrama de actividades
 
Modulo tema-3-metodos-de-resolucion
Modulo tema-3-metodos-de-resolucionModulo tema-3-metodos-de-resolucion
Modulo tema-3-metodos-de-resolucion
 
Ejemplo Algoritmo Lineal
Ejemplo Algoritmo LinealEjemplo Algoritmo Lineal
Ejemplo Algoritmo Lineal
 
Grafos resueltos
Grafos  resueltosGrafos  resueltos
Grafos resueltos
 
Caso de Uso
Caso de UsoCaso de Uso
Caso de Uso
 
Metodo Montecarlo
Metodo MontecarloMetodo Montecarlo
Metodo Montecarlo
 
06 arbol de decision
06 arbol de decision06 arbol de decision
06 arbol de decision
 
Problema: M/G/1
Problema: M/G/1Problema: M/G/1
Problema: M/G/1
 
5.1 ejemplos uml
5.1 ejemplos uml5.1 ejemplos uml
5.1 ejemplos uml
 
Kai hwang solution
Kai hwang solutionKai hwang solution
Kai hwang solution
 
Introduccion y fundamentos
Introduccion y fundamentosIntroduccion y fundamentos
Introduccion y fundamentos
 
Enfoques.
Enfoques.Enfoques.
Enfoques.
 

Similar a Patrón Chain of Responsibility

Chain Of Responsability
Chain Of ResponsabilityChain Of Responsability
Chain Of Responsabilityjlrvpuma
 
Cadena de responsabilidad.chaine of responsability
Cadena de responsabilidad.chaine of responsabilityCadena de responsabilidad.chaine of responsability
Cadena de responsabilidad.chaine of responsabilityUTCH
 
Arquitectura cliente – servidor en internet
Arquitectura cliente – servidor en internetArquitectura cliente – servidor en internet
Arquitectura cliente – servidor en internetJuan Bernal
 
Especificación de requisitos
Especificación de requisitosEspecificación de requisitos
Especificación de requisitosDaniel Ortega
 
Tontería enorme
Tontería enormeTontería enorme
Tontería enormecanduas16
 
Metodologia de Sistemas
Metodologia de SistemasMetodologia de Sistemas
Metodologia de Sistemasjvillar1976
 
Proyecto investigacion para habilitacion LSI
Proyecto investigacion para habilitacion LSIProyecto investigacion para habilitacion LSI
Proyecto investigacion para habilitacion LSIOscar Ardaiz
 
Cliente servidor
Cliente   servidorCliente   servidor
Cliente servidorDianis OR
 

Similar a Patrón Chain of Responsibility (20)

Chain Of Responsability
Chain Of ResponsabilityChain Of Responsability
Chain Of Responsability
 
Cadena de responsabilidad.chaine of responsability
Cadena de responsabilidad.chaine of responsabilityCadena de responsabilidad.chaine of responsability
Cadena de responsabilidad.chaine of responsability
 
ExposicióN Cliente Servidor
ExposicióN Cliente ServidorExposicióN Cliente Servidor
ExposicióN Cliente Servidor
 
Casos De Uso
Casos De UsoCasos De Uso
Casos De Uso
 
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
 

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.