Отражение имеет большие издержки, если вы ищете хорошую производительность. Если ваша рутина (отправка сообщений) будет использоваться снова и снова, лучше использовать альтернативу полиморфизма. Кроме того, ИМО лучше, если смотреть в ОО-перспективе, поскольку, как сказал Брайан в своем ответе, проще и дешевле в обслуживании.
Ваш класс обработки более 30 сообщений может легко вырасти до 100+ сообщений, тогда у вас будет класс с более чем 100 методами, добавьте также частные методы, и повторное использование кода будет затруднено, а ваш класс только что стал беспорядком. *
Затраты на размышления над полиморфизмом и переключателем выглядят примерно так:
time spent on a switch case call: 1
time spent on a polymorphism call: 1.1
time spent on a reflection call: 1.9-2.0
Некоторое время назад я тестировал этих парней, и это были мои результаты, у меня сейчас нет кода, потому что эти тесты были сделаны для моей предыдущей компании, и у меня больше нет доступа к этому коду.