Chain Of Responsability

Post on 10-Jul-2015

1.245 views 0 download

Transcript of Chain Of Responsability

Patrones de Diseño – Chain of Responsability

●Permite desacoplar al objeto que realiza una petición de aquellos quienes

pueden tratarla.

●La petición se lanza a una cadena de objetos que se "la van pasando" hasta

que uno de los objetos la maneja.

Se utiliza cuando :

●En función del estado del sistema las peticiones emitidas por un objeto

deben ser atendidas por distintos objetos receptores.

●Los objetos receptores de una petición deberían ser especificados

dinámicamente

Patrones de Diseño – Chain of Responsability

Estructura :

Una típica estructura del objeto luciría así :

Patrones de Diseño – Chain of Responsability

●Handler :

Define una interface para el manejo de peticiones.

Además, opcionalmente, implementa el link al objeto sucesor(succesor) en la

cadena que manejará o no la petición.

●ConcreteHandler :

Maneja las peticiones de las que es responsable.

Puede accesar a su sucesor(succesor).

Si el ConcreteHandler puede manejar la petición, lo hace, si no, la pasa a su

sucesor.

●Client:

Inicia la petición a un objeto ConcreteHandler en la cadena.

Participantes :

Patrones de Diseño – Chain of Responsability

Colaboración :

Cuando un cliente envía una petición, ésta se propaga a lo largo de la cadena

hasta que un objeto ConcreteHandler toma la responsabilidad de manejarla.

Consecuencias :

●Reduce el acoplamiento entre el objeto emisor de la petición y el objeto receptor

de la petición.

●Proporciona flexibilidad asignando responsabilidad a los objetos.

●Es posible que la petición no se manejada o recibida.