Modelagem

2 respostas
J

.

2 Respostas

J

Alguém?

WellingtonRamos

Olá,

Eu não deixaria tudo no BD (sua última opção)

Teria um atributo protected Map que armazenaria TODOS os atributos de cada organismo:

class Organismo {
 //String -> Nome do atributo
 //Object -> Valor do atributo (observe que poderá ser necessário o uso de casting)
 protected Map<String, Object> parametros;

 //exemplo de get/set
 public void setNome(String nome) {
  parametros.add("nome", nome);
 }

 public String getNome() {
  return (String) parametros.add("nome");
 }
 
}

Quanto ao tipo, usaria Organismo.class.getName() e o resultado utilizaria para indicar qual o classe utilizar.
Utilizaria uma Factory que, por reflexão faria isso.

Na base de dados, guardaria os parametros numa tabela de atributos "associada" ao organismo.

Posso ter, assim, n tipos de organismos mas sem ter que criar tabelas específicas a cada um.
Posso ter n tipos de classes com uma construção "mais simples" mas com uma Factory um pouco mais complexa.

Espero que ajude

Obs.: Estou omitindo partes importantes do código para simplicidade do entendimento da idéia ;)
Obs2.: Desculpe a demora na resposta. Esqueci deste tópico.

Criado 25 de agosto de 2010
Ultima resposta 3 de set. de 2010
Respostas 2
Participantes 2