Enum ou properties para mensagens?

Olá tava aqui testando o uso de enum , pois tava querendo definir padrões de mensagens.

Fiz esse enum abaixo para testes, porém queria saber se é mais viavel para este caso utilizar enum ou properties, em termo de velocidade e praticidade.

public enum Mensagens {
	ERRO("Aconteceu um erro na operação ${1}."),
	OKCADASTRO("Cadastro do(a) ${1} efetuado com sucesso."),
	FRASE("João comprou ${1} na feira de ${2} por ${3}.");
	
	private final String value;
	
	Mensagens(String value){
		this.value = value;
	}
	
	public String value(){
		return value;
	}
	
	public String show(String... params){
		int i = 1;
		String retorno = this.value;
		
		for(String param : params){
			retorno = retorno.replace("${"+i+"}", param);
			i++;
		}
		return retorno;
	}
	
	public String toString(){
		return value;
	}
}

Para usar

System.out.println(Mensagens.FRASE.show("BADOGUE","ARMAS","5 reais"));

O que vocês acham?
Por um lado é bom que o cara não vai ter que passar a chave (string) para pegar o valor. E ainda vai ter o autocompletar da ide para saber quais as mensagens, menos sujeito a erro.

A vantagem de usar propeties é que vc pode colocar as mensagens em um arquivo texto separado.

No caso do enum tem que alterar no código mesmo. Se isso não for problema pra vc, acho melhor o enum.

Tenho usado enums em alguns casos de listas discretas e to gostando bastante.

Então a vantagem mesmo seria de ele está separado, e poder atualiza-lo sem tocar no codigo da aplicação.

Em termo de peformance muda muita coisa?

Acho que não é isso que vai impactar sua aplicação :stuck_out_tongue:
Normalmente o que costuma impactar aplicações é:

  • Acessos desnecessários ao banco de dados, e consultas mal-feitas;

  • Log ligado direto;

  • Excessivas concatenações de strings usando “+=”;

  • Não usar variáveis temporárias quando necessário, para evitar rechamar a mesma coisa trezentos milhões de vezes;

  • Algoritmos ruins para fazer as coisas (por exemplo, achar a diferença entre duas datas pegando a primeira data e somando de 1 em 1 dia, até chegar à segunda data).

Usar váriaveis temporarias quando necessario, não?

Usar váriaveis temporarias quando necessario, não? [/quote]

Creio que ele queria dizer, só usar variáveis temporárias quando realmente necessárias.