Le sens du modèle de stratégie est de définir une série d'algorithmes, de les encapsuler un par un et de les rendre interchangeables.
Un petit exemple peut nous le faire comprendre.
Rappelez la méthode animer dans jquery.
Ces deux lignes de code font toutes deux déplacer le div de 200 pixels vers la droite en 1 000 ms. Linéaire (vitesse uniforme) et cubique (assouplissement cubique) sont l'encapsulation d'un modèle de stratégie.
Prenons un autre exemple. Dans le dev.qplus.com que j'ai écrit au premier semestre, de nombreuses pages auront un formulaire de vérification instantanée. Chaque membre du formulaire aura des règles de vérification différentes.
Par exemple, dans la case du nom, il faut vérifier qu'il ne s'agit pas de mots vides, sensibles, et que les caractères sont trop longs. Bien sûr, vous pouvez écrire trois if else pour résoudre le problème, mais l'évolutivité et la maintenabilité de l'écriture de code de cette manière peuvent être imaginées. S’il y a plus d’éléments dans le formulaire et que plus de situations doivent être vérifiées, il n’est pas impossible d’écrire des centaines de if else au total.
Une meilleure approche consiste donc à encapsuler chaque règle de validation séparément à l'aide du modèle de stratégie. Lorsque vous avez besoin de quel type de vérification, il vous suffit de fournir le nom de la police. Comme ça :
Comme vous pouvez le constater, diverses règles de validation peuvent être facilement modifiées et remplacées les unes par les autres. Si un jour le chef de produit suggère que la limite de caractères soit modifiée à 60 caractères. Cela ne prend que 0,5 seconde pour terminer le travail.