Olá galera. Estou pensando aqui numa maneid de montar uma paleta de cores personalizadas para um programinha aqui.
tenho assim:
Classe: PaletaDeCores
Objetos:
COR_PAGO
COR_PENDENTE
COR_MENU
COR_CEU
COR_FOGO
COR_JABOTICABA
COR_TERRA
COR_AZUL_FLUORESCENTE_ALARANJADO_ESCURO_BRILHANTE_DISCRETO
…
Tenho varias outras classes que seguem o mesmo modelo. Isso tem que ser um ENUM? ou eu posso usar como um monte de objeto static?
Obrigado.
Como Color no Java não é uma interface, e portanto seu enum não poderá implementar Color, talvez seja mais fácil criar vários campos estáticos. Entretanto, eu costumo a criar enums para status, já que eles contém mais do que só a cor.
Por exemplo. Um enum de estatus poderia conter, em cada elemento:
Cor da letra
Cor do fundo
Texto
Hint
Vini, brigadão, eu inclusive tenho um Enum para Status ( PAGO , NAO_PAGO, AGENDADO,…) vou fazer isso que vc falou.
Mas lembre-se que enums não servem apenas para guardar os nomes, voce pode ter métodos nele.
[quote=extreme z3r0]Olá galera. Estou pensando aqui numa maneid de montar uma paleta de cores personalizadas para um programinha aqui.
tenho assim:
Classe: PaletaDeCores
Objetos:
COR_PAGO
COR_PENDENTE
COR_MENU
COR_CEU
COR_FOGO
COR_JABOTICABA
COR_TERRA
COR_AZUL_FLUORESCENTE_ALARANJADO_ESCURO_BRILHANTE_DISCRETO
…
Tenho varias outras classes que seguem o mesmo modelo. Isso tem que ser um ENUM? ou eu posso usar como um monte de objeto static?
Obrigado.[/quote]
a forma mais segura de implementar isso é com um registro.
Um registro é uma classe com métodos estáticos para registrar e outros para ler.
Vc tem algo assim:
public CoresDoSistema {
private static final Map<Object, Color> cores = new HashMap<Object, Color>();
public static void registerColor(Object id , Color cor){
cores.put(id,cor);
}
public static Cor getColor(Object id){
return cores.get(id);
}
}
Vc pode usa enums para os nomes das cores (os ids).
Vc pode também utilizar esquemas de cor. Ou seja, basicamente vc coloca o mapa de cores dentro de um outro objeto e registra esse objeto.
A leitura é feita delegando a esse objeto. a vantagem disto é que objetos de esquema podem ser lidos de arquivos onde é muito mais facil configurar e vc pode diferentes esquemas conforme outras regras (dia do ano, usuário, sei lá…)