renamed:
Oi
Uma boa prática é fazer as validações em todas as camadas do sistema (repare que não disse programa, eu disse sistema).
Desde sua tela, até o procedimento no banco.
Alguns sistemas obtém dados de outras fontem além do input do usuário (arquivos XML, por exemplo). Por isso, é um boa validar os dados em cada camada.
Concordo com o colega e acrescento. Você não pode pensar que a única entrada de dados será através da tela X.
Você pode ter uma outra necessidade e enviar dados incorretos ao DAO. A parte interessante de validar em todas as camadas (com exceção do DAO) é que você “limita” as chamadas. Não precisa passar por várias camadas até verificar que aquele dado trafegado é inválido.
O que sou absolutamente contra, é efetuar validações ou aplicar regras de negócios no DAO. No meu ponto de vista, as chamadas DAO devem ser concentradas em serviços e esses serviços efetuarem “a última validação” ou “aplicação de regras”. Pois a função do DAO, é simplesmente manipular os dados que serão persistidos, consultados, removidos e etc em relação a sua base de dados.
daniellybifaratte:
Nel, como seria uma validação usando listener/eventos? Isso você fala no exemplo de “número de identificação do animal doméstico” ou " quantidade de ração não disponível"?
E no caso de ser só uma simples validação de data informada? Faria a validação na visão e posteriormente no negócio novamente? Duas vezes?
Obrigada…
Assim, em WEB você pode adicionar um evento chamado onchange a um combobox. O que ele faz? A cada mudança na seleção do item do combo ele executa a chamada ao metodo associado ao evento. Nesse caso, ele não precisa clicar em um botão por exemplo para validar se o item do combo está correto (esse evento normalmente é usado para outras coisas pois se tem em mente que o valor no combobox esteja correto…).
Isso pode ser feito em um campo de entrada, quando o usuário está digitando, quase igual um autocomplete, digamos que quando o usuário digitar no campo mês 13, essa validação já é realizada devido a um evento lançado por um listener. De qualquer forma, eu acredito que você deva deixar em aberto e o usuário digitar o que bem entender e o teu sistema posteriormente validar isso. Para datas, podes criar três campos (dias, mês e ano), usar um combo para os dias, outro para o mês e outro para o ano, podes usar uma máscara, enfim, vai da sua imaginação 