Código e Descrição: existe um padrão?

Alguém sabe por favor a melhor forma de implementação quando se tem uma série de códigos/descrição? Por exemplo (bem tosco):

TIPO_DE_USUARIO 1 - Administrador 2 - Normal 10 - Visitante
Pensei numa interface com códigos:

public static final int ADMINISTRADOR = 1; public static final int NORMAL = 2; public static final int VISITANTE = 10;
Mas daí a classe Usuario ficaria:

private int tipo; private int getTipo() { return tipo; } private void setTipo(int tipo) { this.tipo = tipo; }

Acho que existe alguma forma melhor porque deste jeito posso colocar um código 20 se eu quiser, que não existe, e se eu criar um novo usuário na tabela vou ter que refazer a interface com os códigos e mudar algumas classes talvez.

Pesquise por enums.

Valeu!

Bom, eu li umas coisas sobre, mas eu fiquei em dúvida de uma coisa? Vamos supor que eu tenha criado um enum com estas 3 variáveis. No caso de eu adicionar mais um tipo no banco de dados eu teria que recompilar meu enum, né, que teria que ter o novo item?

[code]public enum Tipo {
ADMINISTRADOR (1),
NORMAL(2),
VISITANTE (10);

private int codigo;

Tipo(int codigo) {
    this.codigo = codigo;
}

public int codigo() { return codigo; }

}[/code]