在当前项目中,有很多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的根据第二PARAM分类。 在每个GetData()中,都有很多分支。 这是一个合理的方法来获取数据?
有太少的上下文甚至没有受过教育的猜测,但它似乎这样的模板需求的臭味。 – sbi 2010-08-24 08:55:25
'boost :: any'?或者'boost :: variant'? – jalf 2010-08-24 10:29:38