El patrón de diseño de la estrategia a menudo se considera como un sustituto de las funciones de primera clase en los idiomas que carecen de ellas.
Entonces, por ejemplo, digamos que desea pasar la funcionalidad a un objeto. En Java, tendría que pasar al objeto otro objeto que encapsule el comportamiento deseado. En un lenguaje como Ruby, simplemente pasaría la funcionalidad en forma de una función anónima.
Sin embargo, estaba pensando en ello y decidí que quizás la Estrategia ofrece más que una simple función anónima.
Esto se debe a que un objeto puede mantener un estado que existe independientemente del período en que se ejecuta su método. Sin embargo, una función anónima por sí sola solo puede mantener un estado que deja de existir en el momento en que la función finaliza la ejecución.
En un lenguaje orientado a objetos que admite funciones de primera clase, ¿el patrón de estrategia tiene alguna ventaja sobre el uso de funciones?