Aujourd’hui, nous verrons pourquoi et comment utiliser le patron de conception Strategie.
Définition
Strategie : Patron de conception comportementale qui peut sélectionner à la volée des algorithmes au cours de l’exécution selon certaines conditions, comme les stratégies utilisées en temps de guerre.
Strategie : Exemple pratique
Afin d’expliquer ce patron de conception, explorons les stratégies utilisées par William Wallace dans Braveheart pour contrer l’ennemi.
import random class Strategy: def enforce(self): pass class WarLord: strategy = None def change_strategy(self, strategy): self.strategy = strategy def apply_strategy(self): self.strategy.enforce() class RaiseSharpenedSticks(Strategy): def enforce(self): print("Raise sharpened sticks, so that cavalries are skwewered") class ChargeIntoEnnemies(Strategy): def enforce(self): print("Charge into ennemies and fight for freedom") class CallIrishFriends(Strategy): def enforce(self): print("Call Irish Friends to have more soldier for fighting") SITUATIONS = { "Cavalries attacking": 0, "Ennemies charge to Scottish": 1, "Ennemies are a twice as much as Scottish": 2 } def main(): williamwalace = WarLord() situation = random.choice(SITUATIONS.keys()) if situation == "Cavalries attacking": williamwalace.strategy = RaiseSharpenedSticks() elif situation == "Ennemies charge to Scottish": williamwalace.strategy = ChargeIntoEnnemies() elif situation == "Ennemies are a twice as as than Scottish": williamwalace.strategy = CallIrishFriends() williamwalace.apply_strategy() main()
Conclusion
Ainsi s’achève ce tutoriel, ajoutez ci-nécessaire vos questions en commentaire.
1+