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 😉
Eu já utilizava Enums, é uma opção muito poderosa e ajuda muito dependendo da aplicação.
cheap cialis without prescription buy tadalafil 40mg pills buy ed pills no prescription
order cialis 5mg without prescription cialis pills 10mg over the counter ed pills
order altace 10mg generic arcoxia 60mg price arcoxia cheap
order generic altace buy arcoxia online cheap order etoricoxib online
levitra oral levitra over the counter buy plaquenil 200mg
oral vardenafil 10mg hydroxychloroquine 200mg drug plaquenil buy online
buy mesalamine 400mg generic order irbesartan 300mg pill avapro 150mg cheap
mesalamine 800mg uk purchase asacol online order avapro 300mg online
purchase vardenafil for sale purchase vardenafil plaquenil 200mg oral
buy generic vardenafil purchase plaquenil generic plaquenil online order
buy temovate online order buspirone amiodarone usa
benicar oral order divalproex 500mg online cheap purchase divalproex online cheap
order olmesartan 10mg online cheap buy generic benicar order divalproex 500mg without prescription
order temovate order cordarone 200mg pills order amiodarone 200mg
temovate sale order amiodarone 100mg generic order cordarone online
diamox 250 mg brand purchase acetazolamide pills azathioprine over the counter
buy acetazolamide no prescription buy generic diamox for sale buy azathioprine sale
buy digoxin online cheap molnupiravir 200mg for sale buy molnunat sale
cost lanoxin buy lanoxin generic buy generic molnunat for sale
order naprosyn 250mg online cheap buy naprosyn generic lansoprazole 15mg pill
naprosyn 250mg brand order naprosyn 250mg generic purchase lansoprazole for sale
order carvedilol generic cenforce online buy chloroquine pill
order carvedilol 25mg online cheap buy cenforce 50mg sale aralen price
buy generic proventil pantoprazole us pyridium order online
generic proventil proventil pills pyridium online order
buy montelukast 5mg online buy amantadine 100mg for sale avlosulfon 100mg for sale
montelukast pill montelukast 10mg cost order avlosulfon for sale
cheap olumiant 4mg buy atorvastatin 20mg generic purchase lipitor pill
olumiant 2mg sale lipitor 20mg tablet buy atorvastatin generic
nifedipine 30mg cost buy cheap fexofenadine buy allegra for sale
order nifedipine 10mg sale buy generic perindopril buy generic allegra 180mg
buy dapoxetine generic xenical price brand orlistat 120mg
generic amlodipine 5mg order generic prilosec 20mg buy omeprazole 10mg pill
order amlodipine pill order prilosec 10mg for sale omeprazole buy online
dapoxetine 60mg cheap buy misoprostol no prescription xenical cost
order diltiazem 180mg pill buy diltiazem medication zyloprim usa
lopressor oral oral lopressor medrol 8 mg tablet
metoprolol medication methylprednisolone 16 mg tablets methylprednisolone 4 mg online