Obsessão por Primitivos.
Uso de primitivos em vez de pequenos objetos para tarefas simples (como moeda, intervalos, strings especiais para números de telefone etc.)Uso de constantes para codificar informação (como uma constante USER_ADMIN_ROLE = 1 para se referir a usuários com direitos de administrador.)Uso de constantes de string como nomes de campos para uso em arrays de dados.
##Signs and Symptoms
-
Uso de primitivos em vez de pequenos objetos para tarefas simples (como moeda, intervalos, strings especiais para números de telefone etc.)
-
Uso de constantes para codificar informação (como uma constante
USER_ADMIN_ROLE = 1para se referir a usuários com direitos de administrador.) -
Uso de constantes de string como nomes de campos para uso em arrays de dados.

##Reasons for the Problem
Como a maioria dos outros maus cheiros, as obsessões por primitivos nascem em momentos de fraqueza. “É só um campo para guardar alguns dados!”, disse o programador. Criar um campo primitivo é muito mais fácil do que fazer uma classe inteiramente nova, certo? E assim foi feito. Depois outro campo foi necessário e adicionado da mesma maneira. E eis que a classe ficou enorme e difícil de manejar.
Os primitivos costumam ser usados para “simular” tipos. Assim, em vez de um tipo de dado separado, você tem um conjunto de números ou strings que formam a lista de valores permitidos para alguma entidade. Em seguida, nomes fáceis de entender são dados a esses números e strings específicos por meio de constantes, e é por isso que eles se espalham por todo lado.
Outro exemplo de uso ruim de primitivos é a simulação de campos. A classe contém um grande array de dados variados, e constantes de string (que são especificadas na classe) são usadas como índices do array para obter esses dados.
##Payoff
-
O código fica mais flexível graças ao uso de objetos em vez de primitivos.
-
Melhor compreensão e organização do código. As operações sobre determinados dados ficam no mesmo lugar, em vez de espalhadas. Chega de adivinhar o motivo de todas essas constantes estranhas e por que elas estão em um array.
-
Mais facilidade para encontrar código duplicado.