Chain Of Responsability

4

Click here to load reader

Transcript of Chain Of Responsability

Page 1: 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

Page 2: Chain Of Responsability

Patrones de Diseño – Chain of Responsability

Estructura :

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

Page 3: Chain Of Responsability

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 :

Page 4: Chain Of Responsability

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.