Gdzie jest korzyść z używania wzoru strategii?

Obejrzałemto wyjaśnienie na Wikipedii, szczególnie próbka C ++, i nie rozpoznają różnicy między właśnie definiowaniem 3 klas, tworzeniem instancji i wywoływaniem ich, a tym przykładem. Widziałem jedynie umieszczenie dwóch innych klas w procesie i nie widzę, gdzie będzie korzyść. Teraz jestem pewien, że brakuje mi czegoś oczywistego (drewno na drzewa) - czy ktoś mógłby to wyjaśnić za pomocą ostatecznego przykładu w świecie rzeczywistym?

Co mogę wyciągnąć z dotychczasowych odpowiedzi, wydaje mi się, że jest to bardziej złożony sposób:

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?)

[Edit-update] Funkcja I, o której mowa powyżej, została zastąpiona inną klasą, w której MoveAlong byłby atrybutem ustawionym zgodnie z potrzebą w oparciu o algorytm zaimplementowany w tej nowej klasie. (Podobnie jak w zaakceptowanej odpowiedzi).

[Edytuj aktualizację]Wniosek

Wzorzec strategii ma swoje zastosowanie, ale mocno wierzę w KISS i dążyłbym do bardziej prostych i mniej zaciemnionych technik. Głównie dlatego, że chcę przekazać łatwy w utrzymaniu kod (bo najprawdopodobniej będę musiał dokonać zmian!).

questionAnswers(8)

yourAnswerToTheQuestion