Obsesión por los tipos primitivos.
Uso de primitivos en lugar de pequeños objetos para tareas sencillas (como monedas, rangos, cadenas especiales para números de teléfono, etc.)Uso de constantes para codificar información (como una constante USER_ADMIN_ROLE = 1 para referirse a usuarios con derechos de administrador.)Uso de constantes de cadena como nombres de campo para su uso en arrays de datos.
##Signs and Symptoms
-
Uso de primitivos en lugar de pequeños objetos para tareas sencillas (como monedas, rangos, cadenas especiales para números de teléfono, etc.)
-
Uso de constantes para codificar información (como una constante
USER_ADMIN_ROLE = 1para referirse a usuarios con derechos de administrador.) -
Uso de constantes de cadena como nombres de campo para su uso en arrays de datos.

##Reasons for the Problem
Como la mayoría de los demás olores, las obsesiones por los tipos primitivos nacen en momentos de debilidad. «¡Solo un campo para almacenar algunos datos!», dijo el programador. Crear un campo primitivo es mucho más fácil que crear toda una clase nueva, ¿verdad? Y así se hizo. Luego se necesitó otro campo y se añadió de la misma manera. Y, sin darnos cuenta, la clase se volvió enorme e inmanejable.
Los primitivos suelen utilizarse para «simular» tipos. Así, en lugar de un tipo de datos independiente, tienes un conjunto de números o cadenas que forman la lista de valores permitidos para alguna entidad. A esos números y cadenas concretos se les dan después nombres fáciles de entender mediante constantes, razón por la cual se extienden por todas partes.
Otro ejemplo de mal uso de los primitivos es la simulación de campos. La clase contiene un gran array de datos diversos y se utilizan constantes de cadena (que se especifican en la clase) como índices del array para obtener esos datos.
##Payoff
-
El código se vuelve más flexible gracias al uso de objetos en lugar de primitivos.
-
Mejor comprensión y organización del código. Las operaciones sobre datos concretos están en un mismo lugar, en vez de estar dispersas. Se acabó adivinar el motivo de todas esas constantes extrañas y por qué están en un array.
-
Resulta más fácil encontrar código duplicado.