Однако никто не говорит, что использование в коде конструкций switch, if-else является чем-то запретным, это идеальные инструменты на начальном этапе разработки проекта.
С развитием проекта от них следует избавляться, т.к. они не предлагают той гибкости и масштабируемости, которые может предложить полиморфизм.