Chaîne de Responsabilité

( Chain of Responsibility )

separator line

package précédent white background package suivant

Rational Rose picture

Description


Lorsque plusieurs objets sont susceptibles de pouvoir traiter une requête suivant le contexte, ce patron permet d'éviter le couplage direct entre l'émetteur de la requête et son traitement par l'un des récepteurs potentiels. Une chaîne d'objets récepteurs est alors constituée et parcourue jusqu'à ce que l'un d'entre eux traite effectivement la requête.


Structure et constituants


Design Patterns picture

Design Patterns picture

  • Handler définit l'interface d'un récepteur de requêtes,
  • Handler1 et Handler2 traitent concrètement une requête ou la passent à leur successeur,
  • ChainClient transmet une requête.

Collaborations

La requête émise par le client est transmise le long de la chaîne jusqu'à son traitement effectif.

Design Patterns picture

Forces et faiblesses


Design Patterns picture   réduction du couplage entre le client et le traitement d'une requête par un ensemble d'objets dont on ne sait pas au préalable lequel pourra effectivement traiter la requête,

Design Patterns picture   possibilité de modifier dynamiquement la façon de traiter une requête,

Design Patterns picture    souplesse dans l'attribution des responsabilités de traitement aux objets de traitement,

Design Patterns picture    suivant les contraintes de conception, le traitement peut ne pas être garanti.


Utilisation dans CBR*Tools


Un schéma d'apprentissage utilise ce patron pour prendre la décision de l'ajout d'un cas et de son indexation dans la mémoire. Une chaîne de décideurs est alors formée, dans laquelle chaque élément étudie suivant un critère la réponse à cette requête.

Separator line


Valid XHTML 1.0!

Valid CSS!

Comments

Last modified: Wed Aug 1 15:12:25 MEST 2001