История изменений
Исправление Adonai, (текущая версия) :
Да почти так, как ты и написал. Два наследника, у каждого своя реализация метода, и паттерны никакие не нужны, обычный приём полиморфизма.
Паттерн визитор применяется в случае, если нельзя изменять исходные коды того, над чем работаешь, в эту сторону не кури.
Вообще, если уж припечёт, очень тщательно выбирай случаи, когда собираешься использовать тот или иной паттерн - там плюсы/минусы и польза/вред не зря пишутся. В противном случае рискуешь переусложнить свой код.
Исправление Adonai, :
Да почти так, как ты и написал. Два наследника, у каждого своя реализация метода, и паттерны никакие не нужны, обычный приём полиморфизма. Только кастуй не к наследнику, а к родительскому классу - так как метод виртуальный, экземпляр, в зависимости от того, как он был создан, сам поймёт, что ему вызывать.
Паттерн визитор применяется в случае, если нельзя изменять исходные коды того, над чем работаешь, в эту сторону не кури.
Вообще, если уж припечёт, очень тщательно выбирай случаи, когда собираешься использовать тот или иной паттерн - там плюсы/минусы и польза/вред не зря пишутся. В противном случае рискуешь переусложнить свой код.
Исходная версия Adonai, :
Да почти так, как ты и написал. Два наследника, у каждого своя реализация метода, и паттерны никакие не нужны, обычный приём полиморфизма.
Паттерн визитор применяется в случае, если нельзя изменять исходные коды того, над чем работаешь, в эту сторону не кури.
Вообще, если уж припечёт, очень тщательно выбирай случаи, когда собираешься использовать тот или иной паттерн - там плюсы/минусы и польза/вред не зря пишутся. В противном случае рискуешь переусложнить свой код.