Le modèle de conception de la stratégie est souvent considéré comme un substitut aux fonctions de première classe dans les langues qui en manquent.
Par exemple, disons que vous vouliez transmettre des fonctionnalités à un objet. En Java, vous devez passer dans l'objet un autre objet qui encapsule le comportement souhaité. Dans un langage tel que Ruby, vous passeriez simplement la fonctionnalité elle-même sous la forme d'une fonction anonyme.
Cependant, j'y pensais et j'ai décidé que la stratégie offrait peut-être plus qu'une simple fonction anonyme.
En effet, un objet peut contenir un état qui existe indépendamment de la période d'exécution de sa méthode. Cependant, une fonction anonyme en elle-même ne peut conserver qu'un état qui cesse d'exister au moment où la fonction termine son exécution.
Dans un langage orienté objet qui prend en charge les fonctions de première classe, le modèle de stratégie a-t-il un avantage sur l'utilisation des fonctions?