¿Dónde está el beneficio de usar el Patrón de Estrategia?

He miradoesta explicación en Wikipedia, específicamente la muestra de C ++, y no reconocemos la diferencia entre solo definir 3 clases, crear instancias y llamarlas, y ese ejemplo. Lo que vi fue simplemente colocar otras dos clases en el proceso y no puedo ver dónde podría haber un beneficio. Ahora estoy seguro de que me falta algo obvio (madera para los árboles): ¿podría alguien explicarlo utilizando un ejemplo definitivo del mundo real?

Lo que puedo hacer de las respuestas hasta ahora, me parece que es solo una forma más compleja de hacer esto:

have an abstract class: MoveAlong with a virtual method: DoIt()
have class Car inherit from MoveAlong, 
     implementing DoIt() { ..start-car-and-drive..}
have class HorseCart inherit from MoveAlong, 
     implementing DoIt() { ..hit-horse..}
have class Bicycle inherit from MoveAlong, 
     implementing DoIt() { ..pedal..}
now I can call any function taking MoveAlong as parm 
passing any of the three classes and call DoIt
Isn't this what Strategy intents? (just simpler?)

[Editar-actualizar] La función a la que me refiero anteriormente se reemplaza por otra clase en la que MoveAlong sería un atributo que se establece según la necesidad en función del algoritmo implementado en esta nueva clase. (Similar a lo que se demuestra en la respuesta aceptada.)

[Editar-actualizar]Conclusión

El Patrón de Estrategia tiene sus usos, pero soy un firme creyente en KISS, y tendería a técnicas más sencillas y menos ofuscantes. Sobre todo porque quiero transmitir un código fácil de mantener (¡y porque es muy probable que yo sea el que tenga que hacer los cambios!).

Respuestas a la pregunta(8)

Su respuesta a la pregunta