Exercices Architecture & Patterns Pattern Decorator (wrapper)
🎉

Bravo!

Avancé 🧠 Fondamentaux 30 XP 0 personnes ont réussi

Pattern Decorator (wrapper)

Le pattern Decorator (a ne pas confondre avec les decorateurs Python avec @) est un pattern GoF qui permet d'enrichir un objet en l'enveloppant dans un autre objet. C'est comme un emballage cadeau : tu peux ajouter des couches les unes sur les autres.

Chaque wrapper delegue a l'objet qu'il enveloppe, et ajoute sa propre transformation :

class Base:
def afficher(self):
return 'hello'

class MajusculeWrapper:
def __init__(self, composant):
self.composant = composant
def afficher(self):
return self.composant.afficher().upper() # 'HELLO'

Les wrappers peuvent etre empiles. Chaque couche transforme le résultat de la couche précédente.

Implemente :
- TexteBase(contenu) avec afficher() qui retourne le contenu
- Majuscule(composant) wrappeur : afficher() retourne le texte en majuscules
- ExclamationWrapper(composant) wrappeur : afficher() ajoute '!' a la fin

Exemple :
ExclamationWrapper(Majuscule(TexteBase('hello'))).afficher() # 'HELLO!'
ExclamationWrapper(ExclamationWrapper(TexteBase('ok'))).afficher() # 'ok!!'

Tests (3/4)

TexteBase
assert TexteBase('hello').afficher() == 'hello'
Majuscule
assert Majuscule(TexteBase('hello')).afficher() == 'HELLO'
Empilé
t = ExclamationWrapper(Majuscule(TexteBase('hello')))
assert t.afficher() == 'HELLO!'

+ 0 tests cachés

Indices (3 disponibles)

solution.py