В настоящее время я работаю над интерфейсом командной строки для симулятора частиц .Его синтаксический анализатор принимает входные данные для чтения в следующем формате:
[команда] [аргумент] * (- - [флаг] [аргумент флага] )
В настоящее время команда являетсяотправляется через условный блок, по сравнению с различными известными командами, и соответствующий пакет данных отправляется в функцию сопоставления.Это, однако, кажется неуклюжим, неэффективным и не элегантным.
Я подумываю об использовании вместо этого хеш-карты со строковым представлением команды в качестве ключа и указателя функции в качестве значения.Затем на указанную функцию будет отправлен пакет данных, содержащий аргументы, флаги и т. Д.
Является ли хеш-карта избыточной в этой ситуации?Перевешивает ли дополнительная инфраструктура, необходимая для ее реализации, потенциальные выгоды?Я стремлюсь к скорости, элегантности, функциональности и, поскольку это проект с открытым исходным кодом, расширяемости.
Спасибо за помощь.