Bien sûr, vous pouvez le considérer comme une sorte de stratégie, mais qui s'applique à presque tous les modèles de conception. Alors: pourquoi? P>
3 Réponses :
Parce que certaines des composantes mettent en œuvre des stratégies, "façons d'atteindre quelque chose". P>
Le point de la stratégie est de vous laisser choisir une façon de faire quelque chose, une "stratégie", au moment de l'exécution. P>
Le nom ne se réfère pas au modèle dans son ensemble, il fait référence aux objets dans le motif qui effectuent des actions. P>
Cela ressemble plus à une "tactique" à ce stade, non? Une "stratégie" n'implique-t-elle pas un plus grand paradigme "de plan directeur"?
@jldupont: Ne me blâme pas, je ne l'ai pas nommé! :-)
Oui, j'ai accepté ça parce que je suppose que tu as raison, mais c'est vraiment un nom boiteux :-)
Je ne blâme personne bien sûr: je suggère juste que l'interprétation n'est peut-être pas assez adéquate.
L'idée derrière le modèle de stratégie est que "les algorithmes peuvent être sélectionnés au moment de l'exécution". (Wikipedia, modèle de stratégie ) Le modèle, en substance, sélectionne la bonne stratégie (ou le comportement) pour résoudre un problème particulier au moment de l'exécution. Par conséquent, c'est un nom. P>
Se sent comme une définition plus appropriée que celle fournie par @Richiehindle.
toujours un nom boiteux
C'est boiteux, mais pouvez-vous penser à un meilleur?
Il est vrai que tous les modèles sont des "stratégies" pour la conception des applications. Le modèle de stratégie prend cependant une logique compliquée, des algorithmes, etc. et l'encapsule. Qui nettoie votre code et permet également d'utiliser différentes stratégies en fonction de différentes conditions. p>
ex. J'ai écrit un calcul d'intérêt complexe pour la garantie et au lieu d'avoir réellement le calcul à l'intérieur de la classe collatérale, je l'ai déplacée dans une classe d'intérêt (stratégie). Ensuite, quand ils ont commencé à me dire que le calcul doit être différent, car le taux d'intérêt a adhéré à l'interface d'itinérance, je pouvais éteindre et créer de nouveaux calculs autant que nécessaire et la classe collatérale n'a pas été affectée ... P>