Spotik:
Fernando obrigado pela resposta.
Eu fiquei com a duvida pois estou fazendo um projeto na faculdade referente a uma Locadora de carros, e no nosso diagrama de classes o metodo “validarCpf()” ficou dentro da classe ClientePf… o que eu entendi foi que quando eu desse os gets nas textfields eu iria verificar a consistencia dos daods (se contem 11 digitos e se só contem numeros) e depois, quando eu criasse o objeto cliente já com todos os dados validados, eu chamaria o validarcpf antes de gravar no banco, caso houvesse algum erro, apenas mostraria uma msg e continuaria na mesma tela para que o user arruma-se o campo errado.
Pra mim eu poderia fazer essa verificação de cpf antes de criar o objeto cliente em si, porém como o metodo consta na classe cliente, a dúvida persistiu =P
Ola Spotik
Eu entendo sim…vc não é primeiro e sera o ultimo, na verdade 90% da empresas que eu chego esse assunto esta completamente embaralhado kkkk
A “forma de bolo”, é baseado em responsabilidade, uma vez que uma definição arquitetural esta relacionado com RESPONSABILIDADE-> “quem deve fazer o que dentro da solução”…Tudo um questão de organização:
1) A camada de visão é responsável em validar os seguintes condições:
*) validar campos obrigatório de GUI - dentro das interfaces gráficas podem existir campos obrigatório pertences a lógica da própria GUI, sem estar relacionado com regra de negócio.
Exemplo: preenchimento obrigatório de data inicial e data final de um relatório entre datas.
*) consistência dos dados - validar o tipo das informações esperadas a ser inseridos pelos usuários: numero, data, hora, cpf, cnpj, e sua consistências gerais.
Por exemplo:
- validar se o usuário digitou apenas números em um campo no qual se espera um código de produto.
- validar se o usuário digitou uma data valida em um campo no qual se espera alguma data valido do mundo real.
- validar que a data final não pode ser anterior a data inicial na geração de um relatório entre datas.
*) Colocar e retirar as mascaras - a camada de visão deve pegar a informações bruta vindo de outras camadas e colocar as devidas mascaras antes de apresentar para o usuario final. Da mesma forma fazer o inverso, retirando as mascaras na hora de submeter a informação bruta para as outras camadas.
2) A camada de negócio é responsável em validar os seguintes condições:
*) consistência de negócio e/ou processo de negócio - validar se as informações brutas vindouras das outras camadas estão de acordo com as regras de negócio da solução.
Por exemplo:
- validar a obrigatoriedade de um CPF novo ou existente para gerar um nota fiscal.
- validar se um determinado CPF pode ou não estar fazendo uma nota fiscal acima do valor faturado.
- validar se uma nota fiscal pode ser emitido numa determinada data.
Obsversão
perceba em ambas as camadas visão e negocio pode existir validações de obrigatoriedade e consistência. O questão é quando vc coloca numa a responsabilidade da outra…OU seja o desenvolvedor implementa dentro do negocio uma validação de Tela ou dentro da tela a validação de negocio…e é ai que inflexibilidade começar a entrar no seu projeto…
Como usar?
- Procure classificar a validação…
“Isso é a validação de GUI ou de negocio?”