Design Patterns

Boa tarde.

Qual seria a melhor maneira de aplicar um pattern de validação ao salvar um objeto complexo?

Não está claro para mim qual a melhor abordagem. A idéia inicial foi aplicar um “Chain of Responsibility”, porém, não tenho apenas um objeto simples a ser validado. Compreendem? O objeto que será persistido (emissão de um documento) depende de variáveis e métodos que não pertencem a ele.

A idéia é evitar mil "ifs":

public MeuObeto emitir() {
    validacao1();
    validacao2();
    validacao3();
    ...
    validacaoN();

    dao.salva(obj); // ufa

    // faz mais coisas
    ...
1 curtida

Com o “Chain” posso passar os objetos de validação como argumento para o construtor do meu “XValidator”.

Acho que vou implementar. Se alguém tiver alguma sugestão melhorada, à vontade!

^^

Eu gosto de utilizar um padrão chamado Specification, é uma espécie de Builder misturado com Strategy.
Exemplo aqui