Obsession des types primitifs.
Utilisation de primitifs au lieu de petits objets pour des tâches simples (comme les montants monétaires, les plages de valeurs, les chaînes spéciales pour les numéros de téléphone, etc.) Utilisation de constantes pour encoder des informations (comme une constante USER_ADMIN_ROLE = 1 pour désigner les utilisateurs disposant de droits d'administrateur.) Utilisation de constantes de type chaîne comme noms de champs pour les tableaux de données.
##Signs and Symptoms
-
Utilisation de primitifs au lieu de petits objets pour des tâches simples (comme les montants monétaires, les plages de valeurs, les chaînes spéciales pour les numéros de téléphone, etc.)
-
Utilisation de constantes pour encoder des informations (comme une constante
USER_ADMIN_ROLE = 1pour désigner les utilisateurs disposant de droits d'administrateur.) -
Utilisation de constantes de type chaîne comme noms de champs pour les tableaux de données.

##Reasons for the Problem
Comme la plupart des autres odeurs, l'obsession des primitifs naît dans des moments de faiblesse. « Juste un champ pour stocker quelques données ! » s'est dit le programmeur. Créer un champ primitif est tellement plus facile que de créer une toute nouvelle classe, n'est-ce pas ? Et c'est ainsi que cela s'est fait. Puis un autre champ a été nécessaire et a été ajouté de la même manière. Et voilà que la classe est devenue énorme et difficile à manier.
Les primitifs sont souvent utilisés pour « simuler » des types. Ainsi, au lieu d'un type de données distinct, vous avez un ensemble de nombres ou de chaînes qui forment la liste des valeurs autorisées pour une certaine entité. Des noms faciles à comprendre sont ensuite donnés à ces nombres et chaînes spécifiques au moyen de constantes, c'est pourquoi ils se répandent largement.
Un autre exemple de mauvaise utilisation des primitifs est la simulation de champs. La classe contient un grand tableau de données diverses et des constantes de type chaîne (qui sont définies dans la classe) sont utilisées comme indices du tableau pour récupérer ces données.
##Payoff
-
Le code devient plus flexible grâce à l'utilisation d'objets au lieu de primitifs.
-
Meilleure compréhension et organisation du code. Les opérations sur des données particulières sont regroupées au même endroit, au lieu d'être éparpillées. Plus besoin de deviner la raison de toutes ces constantes étranges ni pourquoi elles se trouvent dans un tableau.
-
Repérage plus facile du code dupliqué.