Introduction aux design patterns de comportement
Présentation
Le concepteur d’un système d’objets est souvent confronté au problème de la découverte des objets. Celle-ci peut être réalisée à partir des deux aspects suivants :
-
La structuration des données.
-
La distribution des traitements et des algorithmes.
Les design patterns de structuration apportent des solutions aux problèmes de structuration des données et des objets.
L’objectif des design patterns de comportement est de fournir des solutions pour distribuer les traitements et les algorithmes entre les objets.
Ces design patterns organisent les objets ainsi que leurs interactions en spécifiant les flux de contrôle et de traitement au sein d’un système d’objets.
Distribution par héritage ou par délégation
Une première approche pour distribuer un traitement est de le répartir dans les sous-classes. Cette répartition se fait par l’utilisation dans la classe de méthodes abstraites qui sont implémentées dans les sous-classes. Comme une classe peut posséder plusieurs sous-classes, cette approche autorise la possibilité d’obtenir des variantes des parties décrites dans les sous-classes. Cette possibilité est mise en œuvre par le design pattern Template Method comme l’illustre la figure 17.1.
Figure 17.1 - La répartition des traitements par héritage illustrée par le design pattern Template Method
Une seconde possibilité de répartition est mise en œuvre par la distribution des traitements dans des objets dont les classes sont indépendantes. Dans cette approche, un ensemble d’objets coopérant entre eux concourent à la réalisation d’un traitement ou d’un algorithme. Le design pattern Strategy illustre ce mécanisme à la figure 17.2. La méthode demande de la classe Entite invoque pour la réalisation de son traitement la méthode calcule exposée par l’interface Strategie. Il convient de noter que cette dernière peut avoir plusieurs implantations.
Figure 17.2 - La distribution...