Exercices Architecture & Patterns Pattern Strategy
🎉

Bravo!

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

Pattern Strategy

Le pattern Strategy permet de changer d'algorithme a la volee, comme quand tu changes de vitesse en voiture. Le moteur tourne toujours, mais la vitesse change le comportement.

L'idee : tu as un objet principal (le contexte) qui delegue un travail a un objet stratégie. Tu peux changer la stratégie a tout moment sans modifier le contexte.

C'est different de l'héritage : au lieu de créer une sous-classe pour chaque variante, tu composes ton objet avec la stratégie dont tu as besoin.

Implemente le pattern Strategy pour trier une liste :
- TriCroissant : méthode trier(liste) retourne la liste triee en ordre croissant
- TriDecroissant : tri en ordre decroissant
- TriAbsolu : tri par valeur absolue
- Trieur(stratégie) : utilise la stratégie avec sa méthode trier(liste)

La stratégie peut etre changee a la volee :
t = Trieur(TriCroissant())
t.trier([3, 1, 2]) # [1, 2, 3]
t.stratégie = TriDecroissant()
t.trier([3, 1, 2]) # [3, 2, 1]

Tests (3/4)

Tri croissant
t = Trieur(TriCroissant())
assert t.trier([3, 1, 2]) == [1, 2, 3]
Tri décroissant
t = Trieur(TriDecroissant())
assert t.trier([3, 1, 2]) == [3, 2, 1]
Tri par valeur absolue
t = Trieur(TriAbsolu())
assert t.trier([-3, 1, -2]) == [1, -2, -3]

+ 0 tests cachés

Indices (3 disponibles)

solution.py