Adaptateur

( Adapter )

separator line

package précédent white background package suivant

Rational Rose picture

Description


Ce patron est utile lorsque l'on désire utiliser une classe existante mais que l'interface proposée n'est pas satisfaisante; il propose alors de définir par héritage multiple une classe effectuant les actions d'adaptation nécessaires.

Structure et constituants


Design Patterns picture

  • RequestedInterface définit l'interface désirée par le client,
  • ExistingInterface définit l'interface existante des objets à manipuler,
  • Adpater effectue les actions nécessaires pour la réalisation des opérations suivant l'interface désirée en se basant sur les opérations existante,
  • InterfaceClient manipule l'objet suivant l'interface désirée.

Collaborations


  • le client manipule l'objet par l'interface désirée,
  • l'adaptateur effectue les actions d'adaptation et utilise l'interface existante.

Forces et faiblesses


Design Patterns picture   permet la réutilisation d'une classe d'objets existante dans un autre contexte,

Design Patterns picture   il n'est pas toujours possible d'effectuer des actions d'adaptation pour réaliser ce patron.

Utilisation dans CBR*Tools


Ce patron est utilisé pour connecter deux phases de raisonnement dont la première fournit un type de résultats qui n'est pas conforme à l'attente de la seconde. Ce patron est également utilisé de la même manière pour connecter des index. Toutefois, dans CBR*Tools , l'application de ce patron est facilitée par la définition de hiérarchies de classes interfaces (i.e. ne définissant aucun code). L'adaptation évite ainsi l'appel à du code existant (qui n'est pas toujours adaptable) et se présente de manière symétrique entre l'interface d'origine et celle qui est désirée. Ce type d'adaptateur est dit bidirectionnel (Gamma et al., 1995, p. 168) .

Separator line


Valid XHTML 1.0!

Valid CSS!

Comments

Last modified: Wed Aug 1 16:41:25 MEST 2001