Un modèle de politique est un modèle de conception comportementale qui définit une série d'algorithmes qui peuvent être remplacés par les autres et découplent la sélection et l'utilisation d'algorithmes à partir de l'implémentation d'algorithmes.
En PHP, les modèles de politique peuvent nous aider à gérer les classes avec différents comportements. En encapsulant différents algorithmes, la mise en œuvre d'algorithmes change dynamiquement en fonction des exigences lors de l'exécution, améliorant la flexibilité et l'évolutivité du code.
Supposons que nous devons implémenter une classe de tri et choisir d'utiliser différents algorithmes de tri selon différents besoins.
Tout d'abord, nous créons une interface de stratégie de tri et définissons une méthode de tri tri ():
Ensuite, implémentez une stratégie de tri spécifique, prenez ici le tri des bulles et le tri rapide comme exemple:
Ensuite, créez une classe de contexte de tri qui contient un objet de stratégie de tri et fournit une méthode pour changer la stratégie de tri:
Maintenant, nous pouvons trier en utilisant le modèle de stratégie, en supposant que nous choisissons la stratégie de tri des bulles:
En appelant la méthode SORT (), l'algorithme de tri des bulles sera utilisé pour trier $ les données.
Si nous devons passer à l'algorithme de tri rapide, nous avons juste besoin d'appeler la méthode setStrategy () pour changer:
De cette façon, $ tridData sera trié à l'aide d'un algorithme de tri rapide.
Utilisez le mode stratégie pour obtenir une commutation gratuite de l'algorithme. En encapsulant des algorithmes spécifiques, la sélection et l'utilisation d'algorithmes sont découplées à partir de l'implémentation d'algorithmes.
Le modèle de politique est également conforme au principe de l'ouverture et de la fermeture, qui peut facilement étendre de nouveaux algorithmes.
Le modèle de politique augmentera le nombre de classes et davantage de classes doivent être créées pour implémenter différents algorithmes.
Pour certains scénarios d'application simples, l'utilisation de modèles de stratégie peut sembler trop complexe, augmentant la complexité du code.
Le mode de stratégie est un mode de conception qui met en œuvre la commutation gratuite des algorithmes. En abstraction de différents algorithmes, la sélection des algorithmes est découplée à partir de l'utilisation d'algorithmes et de l'implémentation d'algorithmes.
En PHP, le modèle de politique peut nous aider à gérer certaines classes avec différents comportements, ce qui rend le code plus flexible et plus évolutif.
Le modèle de stratégie est largement utilisé dans les projets réels, tels que le choix des méthodes de paiement, le choix des méthodes de stockage de fichiers, etc.
Bien que le modèle de politique augmente le nombre de classes, il peut fournir une meilleure évolutivité et maintenance. Par conséquent, dans la conception, nous devons choisir s'il faut utiliser le modèle de politique en fonction de la situation réelle.