El Patrón de diseño de la estrategia a menudo se considera un sustituto de las funciones de primera clase en idiomas que carecen de ellas.
Por ejemplo, digamos que querías pasar la funcionalidad a un objeto. En Java, tendría que pasar en el objeto otro objeto que encapsule el comportamiento deseado. En un lenguaje como Ruby, solo pasaría la funcionalidad en forma de una función anónima.
Sin embargo, lo estaba pensando 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 el estado que existe independientemente del período en que se ejecuta el método. Sin embargo, una función anónima por sí sola solo puede mantener el estado que deja de existir en el momento en que la función termina de ejecutarse.
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?