Где выгода в использовании шаблона стратегии?

мы смотрели наэто объяснение в Википедиив частности, пример C ++, и он не может распознать разницу между определением трех классов, созданием экземпляров и их вызовом, и этим примером. То, что я увидел, просто включило в процесс два других класса и не смог понять, в чем будет польза. Сейчас я'я уверен, что яЯ упускаю что-то очевидное (дрова для деревьев) - может кто-нибудь объяснить это на конкретном примере из реальной жизни?

Что я могу сделать из ответов до сих пор, мне кажется, это просто более сложный способ сделать это:

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] Функция, на которую я ссылаюсь выше, заменяется другим классом, в котором MoveAlong будет атрибутом, который устанавливается в соответствии с потребностями на основе алгоритма, реализованного в этом новом классе. (Подобно тому, что продемонстрировано в принятом ответе.)

[Edit-обновление]Заключение

У модели стратегии есть этоs использует, но я твердо верю в KISS, и буду склонен к более простым и менее запутанным методам. Главным образом, так как я хочу передать легко поддерживаемый код (и 'потому что яСкорее всего, это будет тот, кто должен внести изменения!). "

Ответы на вопрос(8)

Ваш ответ на вопрос