Я хочу ваше предложение по следующему псевдокоду. Пожалуйста, предложите, как я мог бы улучшить его, независимо от того, могу ли я использовать некоторые шаблоны проектирования.Как я могу улучшить этот код на C++
// i'm receiving a string containing : id operation arguments
data = read(socket);
tokens = tokenize(data," "); // tokenize the string based on spaces
if(tokens[0] == "A") {
if(tokens[1] == "some_operation") {
// here goes code for some_operation , will use the remaining tokens as arguments for function calls
}
else if(tokens[1] == "some_other_operation") {
// here goes code for some_other_operation , will use the remaining tokens
}
...
else {
// unknown operation
}
}
else if(tokens[0] == "B") {
if(tokens[1] == "some_operation_for_B") {
// do some operation for B
}
else if(tokens[1] == "yet_another_operation") {
// do yet_another_operation for B
}
...
else {
// unknown operation
}
}
Надеюсь, вы поняли суть. Дело в том, у меня есть большое количество идентификаторов и каждый из них имеет свою собственную операции, и я думаю, что это своего рода уродливый иметь 10 экранов кода, содержащего много , если это и еще, если это.
Я успешно использовал этот шаблон, чтобы превратить программу 1000+ в 10-строчный цикл (+1). – ThatBloke 2008-10-27 09:01:21
. Вероятно, вы имеете в виду 10-строчный цикл в основной и 2000+ линиях в вспомогательных классах. необходимо выполнить работу ... – Ilya 2008-10-27 09:12:15
Кроме того, вы теряете любую оптимизацию с помощью встраивания, поскольку вы работаете с вызовами виртуальных функций. Я также вижу некоторый удар производительности. – 2008-10-27 11:31:40