Ola Pessoal,
Estou pesquisando as alternativas para um projeto de sistema distribuidos.
(Depois de 2 meses tentando SOAP…ficarei com RMI mesmo)
A minha duvida é a seguinte: vou precisar das 3 camadas:
a) Business Object: para validação e regras de negocios
b) Transfer Object ( DTO, VO ou o que inventarem…) para serializacao
c) DAO: para persistencia dos dados (nao vou usar EJB).
Meu problema vai ser com certeza a manutencao do sistema, principalmente nas camadas do BO e VO (por exemplo: se alterar
um campo no banco de dados, terei que sair procurando propriedades,
gets e sets respectivametne)
Entao, estou querendo ajudana “montagem” dessas camadas.
As alternativas que tenho são as seguintes
- Camadas BO e VO serem totalmente independentes, usando
propriedades explicitas.
public class Pessoa {
private String nome;
public void setNome(String nome) {
// validacoes e regras de negocios aqui.
this.nome = nome;
}
public String getNome() {
return nome;
}
}
// quanto mais leve, melhor....
public class PessoaVO {
private String nome;
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
}
- Extender a classe BO da VO:
// quanto mais leve, melhor....
public class PessoaVO {
private String nome;
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
}
public class Pessoa extends PessoaVO {
// normalmente o override dos metodos vai nos set.
public void setNome(String nome) {
if (nome != null && nome.length() < 50)
this.nome = nome;
}
}
- Alternativas exoticas: tais como usar HashMap para as propriedades (tentei fazer isso, mas achei pior).
public class Pessoa {
HashMap properties;
public Pessoa() {
properties = new HashMap();
properties.put("nome",null);
}
public setProperty(String key,Object value) {
if ( ! properties.contains(key))
throw new RuntimeException("A propriedade nao existe: " + key);
properties.put(key,value);
}
}
Alguma sugestão ?
