В текущем проекте есть много методов GetData(), которые получают разные данные из ручной письменной базы данных во время выполнения, и устанавливают их в разных полях в классе. Тогда у проектов есть такие методы.Как оптимизировать/реорганизовать такой код?
void GetData(Datatype type, int& value);
void GetData(Datatype type, double& value);
void GetData(Datatype type, long& value);
void GetData(Datatype type, longlong& value);
....
Есть много типов данных, поэтому их метод часто называют с переключателем с большим количеством ветвей.
void GetData(Datatype type, int& value)
{
switch(type)
{
Type1:
value = GetDataFromDB1(TYPE1);
Type2:
value = .. //get from different source
...
}
}
void GetData(Datatype type, double& value)
....
Как вы видите, тем GetData() s классифицируются в соответствии со вторыми парами. И внутри каждого GetData() есть много ветвей. Является ли это разумным методом получения данных?
Слишком мало контекста, чтобы даже получить обоснованное предположение, но, похоже, это воняет необходимостью в шаблонах. – sbi
'boost :: any'? Или, может быть, «boost :: variant»? – jalf