Есть код, который принимает json данные и в зависимости от типа выполнить определённые действия.
Весь код обработки находится в if'ах, добавление новых типов оказалось неудобным.
Сейчас планирую вынести обработку в отдельные сервисы под каждый тип, а информацию передавать с помощью DTO. Но, это все равно не избавляет от сложности и количество if. Рассматривал возможность заменить на switch/match, но, такой вариант кажется не совсем верным. С похожей проблемой столкнулся и в другой части кода, где нужно обрабатывать по-разному в зависимости от состояния.
if ('text' === $message->getType()) {
// code
}
if ('poll' === $message->getType()) {
// code
}
if ('image' === $message->getType()) {
// code
}
С ООП немного знаком в теории, на практике, осмысленно, применять получается редко.
Насколько я знаю в решении проблемы должен помочь полиморфизм, но, как правильно его применить не пойму.