Strategy Pattern in Python
Découvrez Strategy Pattern in Python avec un exemple pratique modifiable et exécutable en ligne.
Qu’est-ce que Strategy Pattern ?
Découvrez Strategy Pattern in Python avec un exemple pratique modifiable et exécutable en ligne.
Quand l’utiliser ?
- Résoudre des problèmes récurrents de conception objet avec des structures éprouvées.
- Découpler les responsabilités afin de faciliter l’extension et les tests du code.
- Employer un vocabulaire de conception commun lors des discussions d’architecture en équipe.
Code d’exemple
main.py
def regular_discount(total): return total
def member_discount(total): return total * 0.8
class Checkout:
# Strategy: inject the algorithm that is allowed to vary.
def __init__(self, discount_strategy):
self.discount_strategy = discount_strategy
def total(self, amount):
# Delegate the varying algorithm to the strategy.
return self.discount_strategy(amount)
checkout = Checkout(member_discount)
print(f"{checkout.total(15):.2f}")
Résultat attendu
12.00
Fonctionnement
Cet exemple illustre Strategy Pattern in Python. Modifiez les entrées pour comprendre le fonctionnement du code.
Modifiez les valeurs et exécutez le programme avec le compilateur Python en ligne CodeUtility, sans installation locale.
Exercices pratiques
Modifiez les entrées et testez les cas limites avant d’utiliser des données plus volumineuses.
- Remplacez le domaine de l’exemple tout en conservant la structure du pattern.
- Comparez le pattern à une implémentation plus simple et expliquez les compromis.
- Écrivez des tests pour chaque participant avant d’ajouter une autre implémentation.