patrón de diseño cadena de responsabilidad

4
Cadena de Responsabi lidad (Chain of Responsability) Patr´ on de Comport ami ento Prop´ osito Posibilidad de gestionar una petici´on a m´ as de un objeto mediante el encadenamiento de receptores. Motivaci´ on  Sistema de ayuda sensible al contexto de una interf az gr´ a ca.  El usuario puede solicitar ayuda de cualquier parte de la interfaz.  Si la parte seleccionada tiene informaci´on es- pec´ ıfica debe presentarla; en caso contrario se debe presentar un mensaje relacionado con el contexto as proximo ( sucesor ) de la parte se- leccionada.  Pr oblema: El ob jeto que inicia la petici´on no conoce a priori que objeto proporciona la ayuda.  Soluci´ on: Desacoplar el emisor de la petici´on de los receptores (receptor impl ´ ı cito ). Se establece una cadena de objetos que delegan la petici´on hasta que uno se hace cargo. 1

Upload: manual

Post on 18-Feb-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

7/23/2019 Patrón de diseño Cadena de Responsabilidad

http://slidepdf.com/reader/full/patron-de-diseno-cadena-de-responsabilidad 1/4

Cadena de Responsabilidad

(Chain of Responsability)

Patr´ on de Comportamiento 

Prop´ osito 

Posibilidad de gestionar una peticion a mas de un

objeto mediante el encadenamiento de receptores.

Motivaci´ on

•   Sistema de ayuda sensible al contexto de unainterfaz grafica.

•   El usuario puede solicitar ayuda de cualquierparte de la interfaz.

•   Si la parte seleccionada tiene informacion es-pecıfica debe presentarla; en caso contrario sedebe presentar un mensaje relacionado con elcontexto mas proximo (sucesor ) de la parte se-leccionada.

•   Problema: El objeto que inicia la peticion noconoce a priori que objeto proporciona la ayuda.

•   Solucion: Desacoplar el emisor de la peticion delos receptores (receptor implıcito ). Se estableceuna cadena de objetos que delegan la peticionhasta que uno se hace cargo.

1

7/23/2019 Patrón de diseño Cadena de Responsabilidad

http://slidepdf.com/reader/full/patron-de-diseno-cadena-de-responsabilidad 2/4

Aplicabilidad 

•   Mas de un objeto puede manejar una peticion,y no se conoce a priori cual de ellos.

•   No se desea identificar explıcitamente el recep-tor de una peticion.

•   Los objetos que pueden manejar la peticion varıandinamicamente.

2

7/23/2019 Patrón de diseño Cadena de Responsabilidad

http://slidepdf.com/reader/full/patron-de-diseno-cadena-de-responsabilidad 3/4

Estructura

Participantes 

•   Manejador (Handler)Define la interfaz para manejar peticiones.

Normalmente define el enlace al sucesor.

•   Manejador Concreto (ConcreteHandler)

Maneja las peticiones de las que es responsable.

Si no puede gestionar la peticion, la redirige a

su sucesor.•   Cliente (Client)

Envıa una peticion a algun Manejador Concretode la cadena.

3

7/23/2019 Patrón de diseño Cadena de Responsabilidad

http://slidepdf.com/reader/full/patron-de-diseno-cadena-de-responsabilidad 4/4

Colaboraciones 

Cuando un cliente inicia una peticion, dicha peti-cion se propaga a traves de la cadena hasta queun Manejador Concreto asume la responsabilidadde gestionarla.

Consecuencias 

•   Reduce el acoplamiento entre objetos

•   Flexibilidad anadida a la hora de aignar respon-sabilidades a los objetos

•   La recepcion de la peticion no esta garantizada

Implementaci´ on

•   Cadena de sucesores

◦   Definir nuevos enlaces

◦   Usar enlaces existentes (Composicion)

•   Conexion de sucesores

•   Representacion de las peticiones

◦   un metodo por cada peticion

◦   unico metodo parametrizado para distinguirdistintas peticiones

4