Le Design Pattern Strategy est un modèle de conception comportemental qui permet de définir une famille d’algorithmes, de les encapsuler chacun dans une classe séparée, et de rendre leurs objets interchangeables. Ce modèle est souvent utilisé en PHP, en particulier lorsqu’il est nécessaire de changer d’algorithme à l’exécution.
Exemple Abtrait du Pattern Strategy
Voici comment vous pouvez l’implémenter en PHP :
Dans cet exemple, ConcreteStrategyA
et ConcreteStrategyB
sont des stratégies concrètes qui implémentent une interface commune Strategy
. Context
utilise cette interface pour appeler l’algorithme défini par les Stratégies Concrètes. Pour changer la façon dont le contexte effectue son travail, d’autres objets peuvent remplacer l’objet de stratégie actuellement lié par un autre.
Exemple plus concret du Pattern Strategy
Voici un exemple concret d’utilisation du Design Pattern Strategy en PHP.
Imaginons que nous avons besoin d’un système de filtrage pour les chaînes de caractères. Différents filtres pourraient inclure le retrait du HTML, la censure des gros mots, la détection de combinaisons de caractères pouvant être utilisées pour envoyer du spam, etc. Voici comment nous pourrions utiliser le Design Pattern Strategy pour cela :
Dans cet exemple, HTMLFilter et SwearFilter sont des stratégies concrètes qui implémentent une interface commune FilterFormData utilise cette interface pour appeler l’algorithme défini par les Stratégies Concrètes. Pour changer la façon dont FormData effectue son travail, d’autres objets peuvent remplacer l’objet de stratégie actuellement lié par un autre.
Autres design pattern
Liens Externes
- Strategy Method in PHP par refactoring.guru
- Strategy Method à designpatternsphp.readthedocs.io