Я работаю над многопоточным приложением для обработки сообщений, написанным на C ++. Приложение получает сообщения XML, выполняет некоторые действия и может при необходимости опубликовать сообщение XML в другой службе.
В настоящее время приложение работает, извлекая данные во время синтаксического анализа сообщения и выполняя некоторые действия над этим сообщением в середине синтаксического анализа. Это кажется плохой практикой для меня. У меня есть возможность создать альтернативу, и я рассматриваю подходы, которые могу использовать.
Один метод, о котором я подумал, - это сериализацию данных xml в объект данных, а по завершении извлекать и обрабатывать данные по мере необходимости. Недостатком будет то, что мне придется создавать новый класс для каждого отдельного xml-сообщения, которое я обрабатываю (вероятно, около 30), но этот подход кажется более чистым, чем тот, который я имею сейчас.
Есть ли лучший способ, чем этот? Следует также упомянуть, что любые библиотеки кода, разработанные за пределами США, вряд ли будут одобрены.