Есть приложение-прокси, которое запрашивает команды с сервера и отправляет их на нужные локальные адреса.
Прокси не знает и не заглядывает во внутренний формат команд, все они обрабатываются одинаково.
Возникла задача для двух определенных команд реализовать отдельную стратегию обработки с частичным разбором внутреннего формата.
На ум приходит некрасивое решение - непосредственно в общий код обработки команд добавить:
if(command_type == A)
{
Xml.Parse(command_payload);
if(Xml.ContainsKey("some_key")
{
DoSomething1();
}
else
{
DoSomething2();
}
}
else
{
ProcessGenericCommand();
}
Понимаю, что это плохое решение, но опыта не хватает понять, как сделать лучше.
Как правильно решаются такие задачи?