Dans Head First Design Patterns, il enseigne le modèle de stratégie en utilisant un exemple Duck où différentes sous-classes de Duck peuvent être affectées à un comportement particulier lors de l'exécution. D'après ma compréhension, l'objectif du modèle de stratégie est de modifier le comportement d' un seul objet au moment de l'exécution, mais ils utilisent l'héritage de Duck pour modifier le comportement de divers types de Duck.
Pertinence?
L'héritage du contexte de Duck n'est-il pas pertinent pour le modèle de stratégie ou la variation des types de Duck et la variation de leurs comportements sont-elles une bonne raison d'utiliser le modèle de stratégie? Les situations dans lesquelles vous devez varier constituent-elles une bonne raison d'utiliser le modèle de stratégie? Pourquoi incluraient-ils cela comme exemple de modèle de stratégie?
Un exemple plus simple
Puis-je simplifier davantage cet exemple en ayant simplement une classe Duck (pas de classes dérivées)? Ensuite, lors de la mise en œuvre d'un objet canard, différents comportements peuvent lui être attribués en fonction de certaines circonstances qui ne dépendent pas de son propre type d'objet. Par exemple: les changements de FlyBehavior en fonction de la météo ou les changements de QuackBehavior en fonction de l'heure de la journée ou de la faim d'un canard. Je sais que cela résoudrait un problème différent de celui du livre, mais ce que je recherche, c'est un exemple de modèle de stratégie pertinent sur lequel s'appuyer.
Mon exemple ci-dessus constituerait-il également le modèle de stratégie?
Éditer:
J'ai réussi à trouver 2 exemples de modèles de stratégie plus simples qui adhèrent plus strictement à des modèles de stratégie sans héritage de contexte: Hunter.java et solver.py .
la source