Não Subestime os Enums

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…

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:

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 😉

39 Comments on “Não Subestime os Enums

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.