Dans le projet actuel, il y a beaucoup de méthode GetData(), qui obtiennent différents types de données à partir de base de données manuscrite à l'exécution, et les définir dans différents champs d'une classe. Les projets ont alors de telles méthodes.Comment optimiser/refactoriser un tel code?
void GetData(Datatype type, int& value);
void GetData(Datatype type, double& value);
void GetData(Datatype type, long& value);
void GetData(Datatype type, longlong& value);
....
Il y a beaucoup de types de données, donc, ces méthodes sont souvent appelées avec un interrupteur avec beaucoup de branches.
void GetData(Datatype type, int& value)
{
switch(type)
{
Type1:
value = GetDataFromDB1(TYPE1);
Type2:
value = .. //get from different source
...
}
}
void GetData(Datatype type, double& value)
....
Comme vous le voyez, les s du GetData() sont classés selon le deuxième param. Et dans chaque GetData(), il y a beaucoup de branches. Est-ce une méthode raisonnable pour obtenir des données?
Il y a trop peu de contexte pour même faire une supposition éclairée, mais il semble que cela pue d'un besoin de modèles. – sbi
'boost :: any'? Ou peut-être 'boost :: variant'? – jalf