Пожалуйста, подумайте, какая часть вашего кода становится проще, сказав
Foo(12, "count")
вместо
Foo_count(12)
Единственный случай, о котором я могу подумать, это когда имя функции ("count")) сама является входными данными.И даже тогда вы, вероятно, захотите выполнить некоторую проверку этого, возможно, с помощью поиска в таблице функций.
Если это не для промежуточного уровня, который просто берет имя команды и передает его, я быидти с двумя отдельными функциями.
Кроме того, реализация функции Foo будет смотреть на имя команды, а затем просто разбиваться на частную функцию для каждой команды, верно?