С точки зрения безопасности, ваш класс и действие поступают из ваших пост-переменных, и это может быть опасно, потому что вы не должны никогда доверять чему-либо, исходящему от пользователя. Предположительно, ваш класс / действие будет выглядеть примерно так:
class1
{
action1.1
action1.2
...
action1.N
}
class2
{
action2.1
action2.2
...
action2.N
}
Как злоумышленник, я первым делом посмотрел бы на состояние, в котором действие не соответствует его соответствующему классу. Я бы попытался представить class1 с action2.1 вместо action1.1.
С учетом сказанного, я предполагаю, что у вас уже есть какая-то форма проверки, и поэтому этого не произойдет. Что приводит меня к моему первоначальному посту: если ваша архитектура работает для вас, то она работает для вас. Взгляните на вещи, о которых вы спрашиваете: безопасность, гибкость, расширяемость и оцените их сами. Найдите свои собственные недостатки. Если вы не знаете, как оценить безопасность / гибкость / прочтение этой темы, попрактикуйтесь и примените ее.
Вы станете лучшим разработчиком, если будете делать ошибки, а затем учиться на них (кроме программного обеспечения для наведения ракет, у вас там будет только одна попытка).