Os poderes do Enum
Extraindo estratégias e complexidade
por Ricardo Lino
O que é?
Enumeração, constantes ou valores enumerados(finitos).
ex: dias da semana, estados, cores, etc...
MOTIVO
font: http://www.javaworld.com/article/2077487/core-java/java-tip-122--beware-of-java-typesafe-enumerations.html
MOTIVO
TYPESAFE ?
font: http://www.javaworld.com/article/2077487/core-java/java-tip-122--beware-of-java-typesafe-enumerations.html
MOTIVO
TYPESAFE ?
font: http://www.javaworld.com/article/2077487/core-java/java-tip-122--beware-of-java-typesafe-enumerations.html
font: http://www.javaworld.com/article/2077487/core-java/java-tip-122--beware-of-java-typesafe-enumerations.html
font: http://www.javaworld.com/article/2077487/core-java/java-tip-122--beware-of-java-typesafe-enumerations.html
Outro motivo. E quando as constantes tem relações com outros dados?
- Enums são imutáveis, o que é ótimo para ambientes com alta concorrência;
- Enums são singleton por padrão: temos uma única instância de cada constante por aplicação;
- Sua natureza polimórfica nos permite trabalhar com polimorfismo de diferentes formas, como sobrecarga de métodos, métodos abstratos ou interfaces;
- Facilita trabalhar com os padrões de projeto Template method, Strategy e State;
- Uma enum já possui uma boa implementação para os métodos equals, hashCode, toString;
- Comparar enums é muito simples, basta usarmos o operador ==;
- Uma é enum é facilmente serializada para String ou int;
- Tem sua própria API de coleções que é type safe: EnumMap e EnumSet;
font: http://blog.triadworks.com.br/enums-sao-mais-que-constantes