2
respostas

Aggregates

Nesse caso do Aluno e Telefone é simples.

Mas se eu tivesse dois agregados diferentes, Cliente e Pedido, e uma regra de negócio onde um Cliente não pode realizar mais que 10 Pedidos, como eu manteria essa consistência? Eles formariam um único agregado ou devo ter outra abordagem?

2 respostas

Oi Diego,

Seria parecido, sendo que na classe Cliente você teria métodos para manipular os pedidos(adicionar, alterar, remover, etc.) e nesses métodos você realiza as validações de negócio.

Bons estudos!

Obrigado pela resposta Rodrigo.

Mas só pelo fato de conter essa invariante eu moveria o Pedido para o agregado de Cliente? Isso poderia ser feito através de um serviço de domínio ou o correto é mesmo o Cliente se tornar agora o root de Pedido? A minha dúvida é por que começaríamos a ter agregados muito grandes e um dos conselhos do DDD é manter agregados pequenos, fora que o Pedido já contém uma coleção de Itens do Pedido.

Após ter esse dúvida eu encontrei esse tópico bastante similiar a minha dúvida e em nenhuma das respostas se aconselha a mover o Pedido para o Cliente. Se puder emitir uma opinião pessoal seria de grande valia para a compreensão.