Classe DTO estar correto?[RESOLVIDO]

[code]package classeDTO;

/**
*

  • @author Losp Sy’s Milar Flores
    */
    public class ClienteDTO {

    //Informações pessoais do cliente.
    private int codigo;
    private String nome;
    private String dataDeNascimento;
    private String sexo;
    private String rg;
    private String cpf;
    private String endereco;
    private String complemento;
    private String nDaCasa;
    private String bairro;
    private String cep;
    private String cidade;
    private String estado;
    private String casaPropria;
    private String telefone1;
    private String telefone2;
    private String fax;
    private String cel1;
    private String cel2;
    private String email1;
    private String email2;
    private String email3;

    public void setCodigo(int codigo) {
    this.codigo = codigo;
    }

    public void setNome(String nome) {
    this.nome = nome;
    }

    public void setDataDeNascimento(String dataDeNascimento) {
    this.dataDeNascimento = dataDeNascimento;
    }

    public void setSexo(String sexo) {
    this.sexo = sexo;
    }

    public void setRg(String rg) {
    this.rg = rg;
    }

    public void setnDaCasa(String nDaCasa) {
    this.nDaCasa = nDaCasa;
    }

    public void setCpf(String cpf) {
    this.cpf = cpf;
    }

    public void setEndereco(String endereco) {
    this.endereco = endereco;
    }

    public void setComplemento(String complemento) {
    this.complemento = complemento;
    }

    public void setBairro(String bairro) {
    this.bairro = bairro;
    }

    public void setCep(String cep) {
    this.cep = cep;
    }

    public void setCidade(String cidade) {
    this.cidade = cidade;
    }

    public void setEstado(String estado) {
    this.estado = estado;
    }

    public void setCasaPropria(String casaPropria) {
    this.casaPropria = casaPropria;
    }

    public void setTelefone1(String telefone1) {
    this.telefone1 = telefone1;
    }

    public void setTelefone2(String telefone2) {
    this.telefone2 = telefone2;
    }

    public void setFax(String fax) {
    this.fax = fax;
    }

    public void setCel1(String cel1) {
    this.cel1 = cel1;
    }

    public void setCel2(String cel2) {
    this.cel2 = cel2;
    }

    public void setEmail1(String email1) {
    this.email1 = email1;
    }

    public void setEmail2(String email2) {
    this.email2 = email2;
    }

    public void setEmail3(String email3) {
    this.email3 = email3;
    }

    public int getCodigo() {
    return codigo;
    }

    public String getNome() {
    return nome;
    }

    public String getDataDeNascimento() {
    return dataDeNascimento;
    }

    public String getSexo() {
    return sexo;
    }

    public String getRg() {
    return rg;
    }

    public String getCpf() {
    return cpf;
    }

    public String getEndereco() {
    return endereco;
    }

    public String getComplemento() {
    return complemento;
    }

    public String getnDaCasa() {
    return nDaCasa;
    }

    public String getBairro() {
    return bairro;
    }

    public String getCep() {
    return cep;
    }

    public String getCidade() {
    return cidade;
    }

    public String getEstado() {
    return estado;
    }

    public String getCasaPropria() {
    return casaPropria;
    }

    public String getTelefone1() {
    return telefone1;
    }

    public String getTelefone2() {
    return telefone2;
    }

    public String getFax() {
    return fax;
    }

    public String getCel1() {
    return cel1;
    }

    public String getCel2() {
    return cel2;
    }

    public String getEmail1() {
    return email1;
    }

    public String getEmail2() {
    return email2;
    }

    public String getEmail3() {
    return email3;
    }

    //Informações da empresa.
    private String firmaOuRazaoSocial;
    private String nomeFantasia;
    private String inscricaoEstadual;
    private String cnpj;
    private String telefoneLoja;
    private String telefoneLoja2;
    private String faxLoja;
    private String emailLoja1;
    private String emailLoja2;
    private String enderecoLoja;
    private String nDaLoja;
    private String complementoLoja;
    private String bairroLoja;
    private String municipio;
    private String uF;
    private String cepLoja;

    public void setFirmaOuRazaoSocial(String firmaOuRazaoSocial) {
    this.firmaOuRazaoSocial = firmaOuRazaoSocial;
    }

    public void setNomeFantasia(String nomeFantasia) {
    this.nomeFantasia = nomeFantasia;
    }

    public void setInscricaoEstadual(String inscricaoEstadual) {
    this.inscricaoEstadual = inscricaoEstadual;
    }

    public void setCnpj(String cnpj) {
    this.cnpj = cnpj;
    }

    public void setTelefoneLoja(String telefoneLoja) {
    this.telefoneLoja = telefoneLoja;
    }

    public void setTelefoneLoja2(String telefoneLoja2) {
    this.telefoneLoja2 = telefoneLoja2;
    }

    public void setFaxLoja(String faxLoja) {
    this.faxLoja = faxLoja;
    }

    public void setEmailLoja1(String emailLoja1) {
    this.emailLoja1 = emailLoja1;
    }

    public void setEmailLoja2(String emailLoja2) {
    this.emailLoja2 = emailLoja2;
    }

    public void setEnderecoLoja(String enderecoLoja) {
    this.enderecoLoja = enderecoLoja;
    }

    public void setnDaLoja(String nDaLoja) {
    this.nDaLoja = nDaLoja;
    }

    public void setComplementoLoja(String complementoLoja) {
    this.complementoLoja = complementoLoja;
    }

    public void setBairroLoja(String bairroLoja) {
    this.bairroLoja = bairroLoja;
    }

    public void setMunicipio(String municipio) {
    this.municipio = municipio;
    }

    public void setuF(String uF) {
    this.uF = uF;
    }

    public void setCepLoja(String cepLoja) {
    this.cepLoja = cepLoja;
    }

    public String getFirmaOuRazaoSocial() {
    return firmaOuRazaoSocial;
    }

    public String getNomeFantasia() {
    return nomeFantasia;
    }

    public String getInscricaoEstadual() {
    return inscricaoEstadual;
    }

    public String getCnpj() {
    return cnpj;
    }

    public String getTelefoneLoja() {
    return telefoneLoja;
    }

    public String getTelefoneLoja2() {
    return telefoneLoja2;
    }

    public String getFaxLoja() {
    return faxLoja;
    }

    public String getEmailLoja1() {
    return emailLoja1;
    }

    public String getEmailLoja2() {
    return emailLoja2;
    }

    public String getEnderecoLoja() {
    return enderecoLoja;
    }

    public String getnDaLoja() {
    return nDaLoja;
    }

    public String getComplementoLoja() {
    return complementoLoja;
    }

    public String getBairroLoja() {
    return bairroLoja;
    }

    public String getMunicipio() {
    return municipio;
    }

    public String getuF() {
    return uF;
    }

    public String getCepLoja() {
    return cepLoja;
    }
    }
    [/code]

Essa classe JB está correto, porém vc pode separar os atributos do cliente e os atributos da empresa. Coloque-os em outra classe. ClienteDTO e EmpresaDTO

Vc realmente precisa de um DTO? Existem pilhas de artigos na internet que desencorajam o uso deste padrão.

http://www.adam-bien.com/roller/abien/entry/how_evil_are_actually_data

Cara assim eu gostei de fazer o sofrware em MVC em camadas até em meus estudo vejo muito programadores usando o mvc por serem uma forma muito segura e vc faz como?
eu odieo os Jframe com muito codigos eu só chamo os metodos lá…

Muito cuidado! Separação em camadas e uso de MVC não estão relacionados (muito menos são a mesma coisa). É possível sim usar ambas as coisas em um programa, mas não as confunda. Artigo: http://sergiotaborda.javabuilding.com/2009/11/mvc-e-camadas/

como ja te disseram… crie 2 DTOs uma EmpresaDTO e outro ClienteDTO… e uma dica que te dou… evite usar coisas do tipo telefone1, telefone2, telefone3… e se alguem dia precisar inserir um 4 outro dia 5 e assim por diante? faça um List de telefones, emails e coisas do genero…

Oi
luistiagos.
é eu uso muito arraylist porem esse cadastro é baseado na sefaz (secretaria da fazenda) da bahia e só permite que seja de 1 a 3 telefones…
e e-mail eu tou sendo ousado em colocar 3 para meu cliente entendeu?

mesmo assim 3 atributos diferentes para a mesma coisa é uma pessima pratica…

[quote=ovelha]Vc realmente precisa de um DTO? Existem pilhas de artigos na internet que desencorajam o uso deste padrão.

http://www.adam-bien.com/roller/abien/entry/how_evil_are_actually_data[/quote]

Vejo tanta gente falando isso como se DTO fosse o fim do mundo. Quero ver você trabalhar com um módulo EJB remoto sem DTO…

Sim luiz então seria bom usar um array com tamanho determinado?

Você realmente precisa de DTO? (trabalha com cluster, trafega muitos dados remotamente e isso tem um alto custo, um POJO que represente sua entidade física não pode ser trafegado, etc etc etc?).

Enfim, se você realmente precisa de um DTO, então a regra básica é: Crie o(s) DTO(s) de acordo com os dados que seu cliente precisa. Se seu cliente precisa de apenas 2 campos, crie um DTO com esses 2 campos. NUNCA crie um DTO genérico.

ps: Caso sua aplicação comece a ficar com muitos DTOs é bom rever a arquitetura e seus objetos de domínio.

Jair, concordo e ratifico cada palavra que você escreveu.

Além do comentário que o pessoal já citou lá encima de separar o que é de pessoa, endereço, etc… você deve deixar seus DTOs mais especializados conforme você citou. Em um projeto um pouco complexo que tenho eu tenho, por exemplo, uma classe Person apenas com o ID, nome e mais alguns campos que uso muito. Já os detalhes da pessoa está no DTO PersonDetails.

[quote=milarflores][code]package classeDTO;

/**
*

  • @author Losp Sy’s Milar Flores
    */
    public class ClienteDTO {

    //Informações pessoais do cliente.
    private int codigo;
    private String nome;
    private String dataDeNascimento;
    private String sexo;
    private String rg;
    private String cpf;
    private String endereco;
    private String complemento;
    private String nDaCasa;
    private String bairro;
    private String cep;
    private String cidade;
    private String estado;
    private String casaPropria;
    private String telefone1;
    private String telefone2;
    private String fax;
    private String cel1;
    private String cel2;
    private String email1;
    private String email2;
    private String email3;

    public void setCodigo(int codigo) {
    this.codigo = codigo;
    }

    public void setNome(String nome) {
    this.nome = nome;
    }

    public void setDataDeNascimento(String dataDeNascimento) {
    this.dataDeNascimento = dataDeNascimento;
    }

    public void setSexo(String sexo) {
    this.sexo = sexo;
    }

    public void setRg(String rg) {
    this.rg = rg;
    }

    public void setnDaCasa(String nDaCasa) {
    this.nDaCasa = nDaCasa;
    }

    public void setCpf(String cpf) {
    this.cpf = cpf;
    }

    public void setEndereco(String endereco) {
    this.endereco = endereco;
    }

    public void setComplemento(String complemento) {
    this.complemento = complemento;
    }

    public void setBairro(String bairro) {
    this.bairro = bairro;
    }

    public void setCep(String cep) {
    this.cep = cep;
    }

    public void setCidade(String cidade) {
    this.cidade = cidade;
    }

    public void setEstado(String estado) {
    this.estado = estado;
    }

    public void setCasaPropria(String casaPropria) {
    this.casaPropria = casaPropria;
    }

    public void setTelefone1(String telefone1) {
    this.telefone1 = telefone1;
    }

    public void setTelefone2(String telefone2) {
    this.telefone2 = telefone2;
    }

    public void setFax(String fax) {
    this.fax = fax;
    }

    public void setCel1(String cel1) {
    this.cel1 = cel1;
    }

    public void setCel2(String cel2) {
    this.cel2 = cel2;
    }

    public void setEmail1(String email1) {
    this.email1 = email1;
    }

    public void setEmail2(String email2) {
    this.email2 = email2;
    }

    public void setEmail3(String email3) {
    this.email3 = email3;
    }

    public int getCodigo() {
    return codigo;
    }

    public String getNome() {
    return nome;
    }

    public String getDataDeNascimento() {
    return dataDeNascimento;
    }

    public String getSexo() {
    return sexo;
    }

    public String getRg() {
    return rg;
    }

    public String getCpf() {
    return cpf;
    }

    public String getEndereco() {
    return endereco;
    }

    public String getComplemento() {
    return complemento;
    }

    public String getnDaCasa() {
    return nDaCasa;
    }

    public String getBairro() {
    return bairro;
    }

    public String getCep() {
    return cep;
    }

    public String getCidade() {
    return cidade;
    }

    public String getEstado() {
    return estado;
    }

    public String getCasaPropria() {
    return casaPropria;
    }

    public String getTelefone1() {
    return telefone1;
    }

    public String getTelefone2() {
    return telefone2;
    }

    public String getFax() {
    return fax;
    }

    public String getCel1() {
    return cel1;
    }

    public String getCel2() {
    return cel2;
    }

    public String getEmail1() {
    return email1;
    }

    public String getEmail2() {
    return email2;
    }

    public String getEmail3() {
    return email3;
    }

    //Informações da empresa.
    private String firmaOuRazaoSocial;
    private String nomeFantasia;
    private String inscricaoEstadual;
    private String cnpj;
    private String telefoneLoja;
    private String telefoneLoja2;
    private String faxLoja;
    private String emailLoja1;
    private String emailLoja2;
    private String enderecoLoja;
    private String nDaLoja;
    private String complementoLoja;
    private String bairroLoja;
    private String municipio;
    private String uF;
    private String cepLoja;

    public void setFirmaOuRazaoSocial(String firmaOuRazaoSocial) {
    this.firmaOuRazaoSocial = firmaOuRazaoSocial;
    }

    public void setNomeFantasia(String nomeFantasia) {
    this.nomeFantasia = nomeFantasia;
    }

    public void setInscricaoEstadual(String inscricaoEstadual) {
    this.inscricaoEstadual = inscricaoEstadual;
    }

    public void setCnpj(String cnpj) {
    this.cnpj = cnpj;
    }

    public void setTelefoneLoja(String telefoneLoja) {
    this.telefoneLoja = telefoneLoja;
    }

    public void setTelefoneLoja2(String telefoneLoja2) {
    this.telefoneLoja2 = telefoneLoja2;
    }

    public void setFaxLoja(String faxLoja) {
    this.faxLoja = faxLoja;
    }

    public void setEmailLoja1(String emailLoja1) {
    this.emailLoja1 = emailLoja1;
    }

    public void setEmailLoja2(String emailLoja2) {
    this.emailLoja2 = emailLoja2;
    }

    public void setEnderecoLoja(String enderecoLoja) {
    this.enderecoLoja = enderecoLoja;
    }

    public void setnDaLoja(String nDaLoja) {
    this.nDaLoja = nDaLoja;
    }

    public void setComplementoLoja(String complementoLoja) {
    this.complementoLoja = complementoLoja;
    }

    public void setBairroLoja(String bairroLoja) {
    this.bairroLoja = bairroLoja;
    }

    public void setMunicipio(String municipio) {
    this.municipio = municipio;
    }

    public void setuF(String uF) {
    this.uF = uF;
    }

    public void setCepLoja(String cepLoja) {
    this.cepLoja = cepLoja;
    }

    public String getFirmaOuRazaoSocial() {
    return firmaOuRazaoSocial;
    }

    public String getNomeFantasia() {
    return nomeFantasia;
    }

    public String getInscricaoEstadual() {
    return inscricaoEstadual;
    }

    public String getCnpj() {
    return cnpj;
    }

    public String getTelefoneLoja() {
    return telefoneLoja;
    }

    public String getTelefoneLoja2() {
    return telefoneLoja2;
    }

    public String getFaxLoja() {
    return faxLoja;
    }

    public String getEmailLoja1() {
    return emailLoja1;
    }

    public String getEmailLoja2() {
    return emailLoja2;
    }

    public String getEnderecoLoja() {
    return enderecoLoja;
    }

    public String getnDaLoja() {
    return nDaLoja;
    }

    public String getComplementoLoja() {
    return complementoLoja;
    }

    public String getBairroLoja() {
    return bairroLoja;
    }

    public String getMunicipio() {
    return municipio;
    }

    public String getuF() {
    return uF;
    }

    public String getCepLoja() {
    return cepLoja;
    }
    }
    [/code][/quote]

    Sugiro você também começar a encapsular suas classes para futuramente ter um reuso de software. Eu vi que já te sugeriram quebrar a classe em 2. Tenta agora fazer uma classe para telefone, email, endereço, etc. e depois disso, relacione com List, de acordo com o seu mapeamento de classses (one-to-many, many-to-one, many-to-many).
    Case você não tenha feito, procure fazer um mapeamento de classes e entidade, para que você consiga enxergar melhor o mapeamento do projeto.

Outro ponto que eu acho importante estar ciente em um DTO: Ele deve ser algo específico para a necessidade do cliente. Ele não é uma cópia do seu domínio, isso é um erro muito grave.
Estão falando dos 3 atributos para telefone errado, que o correto deveria ser uma List, que poderia quebrar essa classe em outras N classes… bom, em um conjunto de domínios isso estaria totalmente correto, porém, na minha opinião, o DTO tem que ser específico. Se o cliente precisa de apenas 3 telefones, coloque os 3 telefones, assim ele não vai ficar “iterando” por outros objetos. Precisa de reuso em DTO? Bom, o DTO deve ser específico, mas isso não ignora o fato dele poder ser reusado. Na minha experiência, isso ocorre poucas vezes e cada caso é um caso que deve ser analisado de forma única.

Espero ter ajudado.

Se o seu DTO está correto ? O que significa “correto” ?
O seu codigo tem vários problemas, como usar String para todos os atributos, mas dependendo do uso do DTO isso pode estar correto.
Sem a definição do contexto em que vai ser usado e a razão de porque precisa ser usado, não ha como saber se está correto.

Sergio…
Bom galera eu nunca entrei numa faculdade ou curso especialização em Java…
isso é estudo próprio… e sem muito tempo
bom eu usei String pelo fato de que aprendir a colocar String pra tuda variavel que não vou fazer calculo.
mais por que colocar varias String num é bom?
isso é errado usar string para tudos os atributos?
ralp… eu num sou muito bom com array, ainda estou praticando, eu criei uma classe clienteDTO mandario eu criar empressa também já criei… o q vc mandou fazer foi isso?
Abraços pessoal