“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 303 — #313
i
i
i
i
i
i
i
i
6.4 La programmation avec l’héritage
303
Les motifs de conception ont été popularisés dans un livre important par Gamma,
Helm, Johnson et Vlissides [27], qui contient un catalogue des motifs de conceptions
pour la POO et qui explique comment les utiliser. Le catalogue contient beaucoup de
motifs basés sur l’héritage avec la vue de type. Pour fixer les idées, nous examinons
un motif de conception typique de ce catalogue du point de vue d’un programmeur
habitué à penser avec les modèles de calcul.
Le motif Composite
Composite est un exemple typique d’un motif de conception. Le but de Composite est
de construire des hiérarchies d’objets. Si on donne une classe qui définit une feuille, le
motif nous montrera comment utiliser l’héritage pour définir des arbres. La figure 6.12,
inspirée par Gamma et al. [27], représente le diagramme d’héritage du motif Composite. On utilise ce diagramme en insérant une classe pour les feuilles, Leaf. Le motif
définit ensuite les deux classes Composite et Component. Component est une
classe abstraite.
Leaf
Composite
Component
operation
add(Component)
operation
children
operation
add(Component)
remove(Component)
getChild(Int)
remove(Component)
getChild(Int)
Figure 6.12 Le motif Composite.
Nous pouvons utiliser le motif Composite pour définir des figures graphiques composées. La section 6.4.2 résout le problème avec la combinaison d’une figure et d’une
liste enchaînée (avec l’héritage simple ou multiple). Le motif Composite est une solution plus abstraite, parce qu’elle ne suppose pas que le regroupement soit fait par une
liste enchaînée. La classe Composite a les opérations add et remove mais ne dit
© Dunod – La photocopie non autorisée est un délit
Précédent

- 318/370

Suivant