| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/11/2006 12:56:51
|
ciczan
JavaGuru
![[Avatar]](/images/avatar/4fb8a7a22a82c80f2c26fe6c1e0dcbb3.png)
Membro desde: 22/12/2004 12:57:21
Mensagens: 227
Localização: Curitiba -PR
Offline
|
Moçada,
Estou fazendo uma aplicação onde o Modelo tem muitas coisas fixas e discretas, o que é um uso bom para do enum. Envolve consulta de dados de estações hidrológicas, meteorológicas e etc.
Daí comecei a usar enums (muitos), criei um com as estaçoes, um para o tipo das estações, um para grupos de estações que o usuário vai visualizar em conjunto e agora mais um para o modo de operação do programa (pode ser simulação ou previsão).
No modelo uso um facade que o controlador acessa, mas deixei os enums publicos tb, pq facilita muito no controlador para fazer comparaçoes, armazenar o estado, ifs, cases, verificação estática e tal.
Minha dúvida é se estou abusando dos enums. No início tava usando eles até para aramazenas os dados. Mas agora só pra coisa dinâmica.
Segue abaixo a listagem do que tem as info de postos:
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/11/2006 13:37:56
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
Porque não colocar isso num BD ou num arquivo de configuração?
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/11/2006 13:59:16
|
armando
Java Ninja
Membro desde: 27/03/2006 14:23:57
Mensagens: 263
Offline
|
Cara... isso aí tá com cara de tabela... desse jeito, por exemplo, você tem muito mais esforço para garantir integridade referencial, por exemplo, e qualquer alteração nesses dados requer alteração da classe e recompilação do projeto. Pense melhor!
Abraço,
Armando
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/11/2006 14:00:03
|
foliveira81
JavaGuru
Membro desde: 10/09/2006 21:57:52
Mensagens: 204
Offline
|
Kra vc pode deixar menos confuso esses seus enuns.
Mais ou menos assim
public enum Estado{
SP{
int valor() {
return 1;
}
String descricao() {
return toString();
}
},
MG{
int valor() {
return 2;
}
String descricao() {
return toString();
}
};
}
pode ate criar uma interface para deixar sempre como retorno de valor e descricao.
ex.
public interface GenericEnum {
public String getDescricao();
public int getValor();
}
public enum Estado{
SP{
int valor() {
return 1;
}
String descricao() {
return toString();
}
},
MG{
int valor() {
return 2;
}
String descricao() {
return toString();
}
};
abstract int valor();
abstract String descricao();
// Esses kras sao implemtados da interface..
public int getValor(){
return valor();
}
public String getDescricao() {
return descricao();
}
}
[]'s
|
Fernando Oliveira |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/11/2006 15:34:36
|
ciczan
JavaGuru
![[Avatar]](/images/avatar/4fb8a7a22a82c80f2c26fe6c1e0dcbb3.png)
Membro desde: 22/12/2004 12:57:21
Mensagens: 227
Localização: Curitiba -PR
Offline
|
Obrigado pelas respostas pessoal. Acho legal discutir sobre arquitetura, todo mundo ganha e é mais interessante que tópicos do tipo "Por que tá dando erro".
Na verdade esse dado tem no banco (até uso o código do enum para fazer as consultas). Mas não é exatamente a estrutura que preciso. E como já existem outras aplicações usando o bd, não posso mudar a tabela. Fora o trabalho de mapear e tal... Um jeito seria criar uma view ou coisa do gênero.
Olhando bem, esse enum praticemente não tem lógica, então poderia virar um arquivo texto tb. Ganharia flexibilidade, mas perderia a verificação na compilação e daria mais trabalho.
O argumento de manter a intergridade relacional é forte mesmo. Acho que é o que vai me fazer por a mão na massa...
Mas essa é a única enum desse jeito, as outras são do tipo:
Para essas acho que enum ainda é uma ótima alternativa.
Quanto à outra forma de escrever o enum (proposta pelo foliveira81), fazendo cada item extender os métodos, não acho que fique tão mais claro. Depois que vc pega o jeito dá no mesmo. E gera mais código...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/11/2006 16:45:26
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
ciczan wrote:E como já existem outras aplicações usando o bd, não posso mudar a tabela. Fora o trabalho de mapear e tal... Um jeito seria criar uma view ou coisa do gênero.
Yeap.
|
|
|
 |
|
|
|
|