Quel type choisir ?

Généralement, lors des développements on ne se pose pas beaucoup de questions sur le type à choisir pour un champ d’une classe, et parfois on choisit des types passe-partout comme les chaînes de caractères mais est-ce que c’est le bon choix à faire ?

On peut se convaincre qu’on a fait un choix judicieux, mais est-ce que le type choisit est le type idéal ? Un mauvais choix peut conduire à un code pollué et à des problèmes de maintenances et parfois à des soucis de performance.

Considérons le bout de code suivant :

// La date minimale
private String dateMin ;
// …
// L’âge de la personne
private String age ;
// …
// Indique si l’état est valide
private int valide;

Le premier champ est une date sous forme d’une chaîne, si on veut exploiter cette donnée il faudrait nécessairement la convertir en utilisant un pattern, donc une donnée est manquante, de plus si la date est internationalisée il faut la convertir avec le pattern correspondant à la locale adéquate.
  • Ce champ devrait être une date.
Le deuxième champ représente l’âge d’une personne, cette donnée en l’état consomme plus de mémoire qu’un entier, et ne permet de comparer deux âges sans conversion.   
  • Ce champ devrait être un entier.
Je vous laisse deviner le type que doit avoir le troisième champ, vous avez raison, la validité devrait être exprimée sous forme de booléen.

La règle qui doit être appliquée est la suivante : « Choisir le type qui exprime le plus la donnée ».

Si on a affaire à un ensemble de constantes (états, types, catégories, etc.) il faut créer une énumération. 

Commentaires

Enregistrer un commentaire

Posts les plus consultés de ce blog

La magie des énumérations