Utilisé ? FenetreAvecScrollBar et FenetreAvecMenu c'est un exemple qu'on peut trouver sur le net mais, je ne crois pas que ce soit beaucoup utilisé. A noter que c'est un peu moins farfelu que FenetreAvecBouton (bonjour pour placer les composants les uns par rapport aux autres si on construit notre fenêtre avec des décorateurs). Un autre exemple que je trouve farfelu est la gestion de listes d'ingrédients/goûts, via le pattern décorateur. Il y a plusieurs exemples sur le net : http://design-patterns.fr/decorateur-en-java. Qu'est ce qu'on veut exprimer ? On veut exprimer qu'un dessert a des ingrédients. Le fait d'utiliser le verbe avoir dénote une composition mais, plutôt que de faire une simple composition, ici, le concepteur choisi d'utiliser le pattern décorateur et se retrouve à faire une liste chainée d'ingrédients via ce pattern. Berk ! C'est un peu galère à gérer si le mec décide que finalement il ne veut pas de chantilly (pas impossible mais, galère...). D'autant plus que dans le speech sur la conception, l'auteur ne parle jamais de la solution la plus simple : une classe Dessert, une classe Ingredient avec deux attributs libellé/prix et la classe Desert est composée d'Ingredients. Voilà, pas besoin de décorateur et je peux avoir autant d'ingrédients que je veux !
Je pense qu'il faut faire attention à ce qui est naturel. Dans l'exemple plus haut je parle du verbe avoir qui dénote une agrégation ; en tout cas ça devrait être la première solution qui vient à l'esprit. Pour ma part, j'utilise le pattern décorateur pour surcharger certains comportements existant soit en :
- redéfinissant complètement certains comportement (pas d'appel à l'objet décoré pour certaines opérations) ça peut arriver quand on utilise une API sur laquelle on n'a pas le contrôle.
- ajoutant du comportement autour (orienté aspect) du comportement par défaut.
L'exemple de Sébastien Meric sur developpez est déjà beaucoup plus intéressant que l'exemple de la FenetreAvecMenu : http://smeric.developpez.com/java/uml/decorateur/.
Ce qu'il ne faut pas faire avec : là, ce n'est que mon avis, il ne faut pas gérer une agrégation avec le patron décorateur !!
J'espère que ça sera plus clair.
Yann