Pergunta

Em Model-View-Presenter padrão onde devemos escrever validações de entrada do usuário.

Foi útil?

Solução

regras específicas de domínio / validações devem estar no Modelo. Você pode ter um model.validate () para que você saiba se as regras não sejam violados. Olhada modelo Rails classes (ActiveRecord) para uma boa implementação deste conceito.

The View deve tornar mais difícil para o usuário a chave na entrada inválida. So 'entrando em uma string para um valor numérico' classe de erros de entrada deve ser cortado antes de atingir o apresentador. Pode haver alguma duplicação de validações entre modelo e vista. Por exemplo. AttributeX deve variar entre 1-100. Este deve ser validado no modelo .. ao mesmo tempo, você pode querer fenda em um girador na interface do usuário com o minValue e maxValue intervalo definido para 1-100.

Outras dicas

Normalmente, eu manter a minha visão completamente limpo, sem lógica lá. Mas eu não faço um monte de desenvolvimento web. Em situações Ajax-ish que você pode querer ter a validação do lado do cliente que tem que ir na vista.

validação lógica de negócios vai no modelo. Com a validação lógica de negócios que coisas ruins como verificar tamanho mínimo de pedido etc.

A validação de entrada vai para o apresentador. Isso pode ser coisas como verificar se um campo de número não contém caracteres não numéricos. Mas dependendo da sua situação isso pode também verificação média se existem arquivos etc.

Em casos mais complexos onde a validação deve ser reutilizáveis ??em diferentes lugares Eu costumo separá-lo em um mecanismo de validação que podem ser chamados em lugares diferentes. Isto resolve alguns problemas com duplicação de código de validação que é usado na camada de apresentação, bem como a camada de persistência, por exemplo.

Apresentador ....

A visão deve ter tem "widgets" que impedem a entrada inválida na medida do possível.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top