luiz renato,
eu li sua mensagem. Quando eu disse que tava errado, estava me referindo a ser errado colocar no get.
eu tava pensando sobre a questão e li alguns artigos. Nunca pensei que esse assunto fosse reder tanto, mas tem ate artigos relacionados a isso. Inclusive quem usa hibernate sao os maiores defendores que coisas assim devem ser colocados no set, pelo que vi. entao depende muito da visao do cara.
Eu parei pra pensar e eu fui meio radical em falar que tudo deve ser colocado na camada de negocio, uma vez que apenas regras de negocio devem ser colocadas la. No entanto o nosso amigo falou tao enfaticamente que deveria ser retirados os espaços que eu pensei que fosse realmente uma regra.
Tem uma forma de fazer isso que pode resolver o problema, na GUI. Em algum ponto essa informacao é colocada numa caixa de texto qualquer e ai ao inves de pegar dessa forma :
caixaDeTexto.getText(), pq nao pega assim : caixaDeTexto.getText().trim() ?
Se vc nao quiser mudar a interface do programa, isso resolve. Se vc tiver uma GUI que mude (uma hora use num html, depois com j2se, depois d outra forma), nao use assim, pq vc vai ter que fazer em todas as interfaces.
Caso isso seja uma exigencia do negocio, coloque na camada de negocio (nao posso dizer se é ou nao).
Caso nao seja e quando vc for criar o objeto ja tiver com essa informação definida, coloque no construtor.
caso vc so tenha acesso a essa informacao depois ou ela mude e vc precise dar um update, use no set.
mas nao use no get porque aí é maquiagem sim. vc ta pegando um dado que foi aceito, entretanto foi aceito errado e quando vai expor ai usuario vc “da uma arrumadinha” numa coisa que teoricamente, se foi aceita, já tá certa.
Porisso que eu disse que era regra de negócio, porque ele disse que nao poderia aceitar de jeito nenhum. Se ele disse tao enfaticamente, entendi dessa forma. E porisso eu disse mais acima que nao posso dizer com certeza se é regra do negocio dele, porque eu nao sei o contexto do problema. Ele apenas disse que era um CRUD web, so isso.
Outra coisa… uma classe modelo tem a responsabilidade basica (claro, pode fazer mais coisas) de guardar atributos e comportamentos, modelando o objeto relacionado. Se nao se pudesse guardar nenhum objeto com atributos null, ´por exemplo, eu nao colocaria essa responsabilidade de verificação na classe basica de modelo, nao.
Quando fosse GRAVAR a camada de negocio deveria mostrar que tem alg coisa como null e reclamar. Dessa forma, se for algo relacionado ao negocio, um espaço pode sim ser verificado nessa camada. É uma regra tao simples como a que eu exemplifiquei com o null.
de qualquer forma, acho que já estao claras varias formas para se fazer isso sem usar essa do get. Inclusive formas bem elegantes. Acho que ja da p colocar como resolvido =). A maioria concordou com o set, entao coloca la, po.