Não Subestime os Enums

Se você é daqueles que subestimam os Enums, bem vindo ao clube, por muito tempo eu subestimei e encarei as enums no meu código apenas como simples constantes…
1 2 3 4 5 |
public enum TipoDeDocumento { RG, CPF, CNPJ; } |
Isto foi um grande erro, pois enums são tão poderosas quanto objetos Java… na verdade, enums são objetos e você deveria encará-las dessa forma! Tratá-las apenas como substitutos para uma lista de constantes do tipo int ou String é ignorar todo o potencial das enums e da orientação a objetos no seu código!
Uma enum pode ser tão completa quanto um objeto Java qualquer, isto é, uma enum pode ter dados (estado) e comportamentos. O código a seguir com uma enum possuindo estas características pode te dar uma idéia sobre o que estou falando:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
public enum TipoDeDocumento { RG("RG", new ValidadorDeRg()), CPF("CPF", new ValidadorDeCpf()), CNPJ("CNPJ", new ValidadorDeCnpj()); private String descricao; private Validador validador; private TipoDeDocumento(String descricao, Validador validador) { this.descricao = descricao; this.validador = validador; } /** * Valida número do documento */ public boolean valida(String numero) { return this.validador.isValido(numero) } } |
Talvez só olhando o código não seja fácil compreender o poder das enums, então para você entender o que eu estou falando realmente eu te convoco a dar uma olhada nesse novo post no blog da Triadworks:
>> Enums são mais que constantes
O post também aborda algumas práticas sobre orientação a objetos que deixamos de usar por não compreender que enums são objetos com dados e comportamentos.
Depois comenta lá o que achou do post 😉
Eu já utilizava Enums, é uma opção muito poderosa e ajuda muito dependendo da aplicação.