Boa Tarde pessoal,
Estou com uma duvida de qual é a melhor maneira de inicializar as constantes do meu sistema.
Ex:
Atualmente elas estao em um arquivo .properties, assim toda vez que algum objeto precisar de algum valor, é obrigado a consultar no arquivo.
Estou pensando em implementar uma interface com as constantes, que quando carregada recebe os valores do arquivo, assim evitaria varios acessos ao disco…
public final static String CONFIG_PROPERTIES = getProperties(KEY_CONFIG);
public static final String OUTRA_CONSTANT = getProperties(KEY_OUTRA_CONFIG);
Nao sei se vale a pena fazer isso. Gostaria de saber a opiniao e vcs.
Valeu
Não use “final”, nesse caso.
Nós já tivemos o seguinte problema: alguma alma bondosa aqui pensou que era melhor deixar eventuais “constantes” (na verdade, configurações) como “public static final”.
O problema é que o sistema não era completamente recompilado quando tais “constantes” eram alteradas. Só os arquivos .class referentes aos arquivos .java que eram alterados eram atualizados no servidor. Deu uns problemas muito difíceis de resolver. (O gajo que provocou o tal problema foi exilado para a Nova Zelândia agora)
O que acabou ocorrendo é que as classes alteradas ficavam fora de sincronia com as novas “constantes”.
Não recomendo usar “final”, apenas “static”, e olhe lá.
Ok, mas como vcs inicializavam essas eventuais “constantes” ? Deixavam o valor fixo no codigo java ?
Pois é, o carinha que agora está na Nova Zelândia deixava as constantes “chumbadas” no código.
Como você está fazendo (lendo dinamicamente) não é tão mau assim, mas é só lembrar de não deixar nenhuma configuração “chumbada” no código.