Le design pattern Décorateur
Le design pattern décorateur permet d’ajout de nouvelles fonctionnalités à une classe sans en modifier le code: il s’agit de créer une nouvelle classe enrobant la classe existante et ainsi offrir ses fonctionnalité de base tout en y ajoutant de nouvelle fonctionnalités.
La classe décoratrice possède une instance de la classe décorée comme attribut. Cette instance peut être soit créée par le décorateur lui même, soit passée en paramètre au constructeur de la classe.
Si la classe de base peut être modifiée, il est intéressant d’en extraire une interface afin de rendre le décorateur non plus lié à une classe mais à une interface. Dans ce cas, la classe décoratrice pourra être déclarée comme implémentant l’interface.