Composite

( Composite )

separator line

package précédent white background package suivant

Rational Rose picture

Description


Lorsque l'on souhaite représenter une arborescence ou masquer les différences entre des objets composites et simples de natures similaires, le patron composite propose la définition d'une interface unifiée d'objets simples et composites.

Structure et constituants


Design Patterns picture

Design Patterns picture

  • Component définit l'interface abstraite d'un composant simple ou composite,
  • Leaf définit le comportement d'un composant feuille, c'est-à-dire qui ne peut pas avoir de fils,
  • Composite définit le comportement d'un composite en stockant ses fils et en répercutant le traitement des méthodes à ses fils de manière appropriée,
  • ComponentClient manipule des composants.

Collaborations


Les clients manipulent un composant au travers de son interface générale. Une feuille exécute directement les opérations demandées alors qu'un composite transfère les requêtes à ses fils en opérant des actions supplémentaires avant ou après ce transfert.

Design Patterns picture

Forces et faiblesses


Design Patterns picture    structuration arborescente d'objets : un composite qui réunit des sous-composants peut être à son tour intégré dans un composite,

Design Patterns picture    encapsulation de l'hétérogénéité d'objets simples et composites : un objet composite peut être utilisé à la place d'un objet simple et inversement,

Design Patterns picture    intégration facilitée de nouvelles classes d'objets composites ou simples qui pourront être combinés de manière stable,

Design Patterns picture    nécessité de contrôler dynamiquement des contraintes particulières dans la composition d'objets au sein d'un composite,>

Design Patterns picture    la maximisation de l'interface générale d'un composant (nécessaire pour l'encapsulation) peut amener à déclarer des méthodes qui n'ont pas de sens pour des objets simples.

Utilisation dans CBR*Tools


Ce patron est utilisé pour représenter de manière structurée les indices, les similarités, les bases de cas et les index.

Separator line


Valid XHTML 1.0!

Valid CSS!

Comments

Last modified: Mon Sep 17 17:03:47 MEST 2001