Boa tarde, tenho o seguinte problema: tenho um objeto que não posso modificar e preciso validar uma série de fatores nele. Em dado momento tenho que validar umas coisas em outro outras. Sei que posso usar o Strategy para seguir estratégias de validação diferentes, mas gostaria de saber se tem um padrão que se encaixe melhor neste problema:
validar as propriedades de um objeto (a classe não pode ser alterada)
Para ser sincero, ainda não vejo justificativa para usar algum padrão de projeto. O que te impede de usar Validador1, Validador2, etc. para as diferentes situações ?
Há alguns anos encontrei um material de um tal de Dr Heinz Kabutz, ele falava sobre o uso do padrão Strategy para a implementação de validações de regra de negócios, ele chegou num padrão que ele chamou de Specification.
Com base no material dele, eu cheguei a criar um pequeno framework para implementar repositórios de regras de negócio (ou validações) reaproveitáveis.
Ele foi implementado na época do Java 5, então não há uso de lâmbda nem streams.
No caso do Java seria usar bean validation, mas como voce nao pode alterar a classe, entao independente de padrões de projeto já vai soar esquisito perante a maioria. Relaxa que já está numa situação fora do comum. Nessa sua situação engessada criaria classes de validação, sem precisar depender de soluções de terceiros pra isso. Muitas vezes o feijão com arroz é mais garantido e compreensível por todos do que seguir algo sofisticado pouco usado, por mais que leve o selo de um “padrao”.