Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Aggregate root

Validação não é uma invariante? Percebi que as invariantes de um VO foram(e devem) ser implementadas no aggregate root, conforme fizemos ao limitar a quantidade de telefones possíveis a serem adicionados. Porém, as validações de CPF e EMAIL fizemos diretamente no VO. Com isso, podemos concluir que as validações não são invariantes e devem ser sempre implementadas nos VOs?

1 resposta
solução!

Olá Leandro, tudo bem?

Excelente pergunta! Na verdade, as validações podem ser consideradas invariantes sim, pois elas garantem que o objeto esteja sempre em um estado válido. Porém, a implementação delas pode variar de acordo com o contexto em que o objeto é utilizado.

No caso do CPF e EMAIL, faz sentido implementar as validações diretamente no VO, pois esses valores são únicos e não podem ser repetidos em outros objetos. Já no caso da quantidade de telefones possíveis em um Aggregate Root, faz sentido implementar a validação no próprio Aggregate Root, pois essa limitação é específica para aquele objeto e não é uma característica do VO em si.

Portanto, a implementação das validações pode variar de acordo com o contexto em que o objeto é utilizado, mas elas são importantes para garantir que o objeto esteja sempre em um estado válido.

Espero ter ajudado e bons estudos!