Lição 7: Modelagem de domínio rica
Quando toda a lógica de negócio fica em serviços e as classes só guardam dados com getters e setters públicos, qualquer linha de código pode quebrar as regras: um total negativo, um pedido sem itens. Nesta lição vamos mover o comportamento para dentro da própria entidade, para que um estado inválido
Um modelo de domínio rico é como uma máquina de vendas automática: você não pode abrir a porta e pegar uma lata — você insere uma moeda, e a máquina libera de acordo com suas próprias regras.
- Modelo de domínio rico
- O comportamento e as regras de negócio vivem dentro da própria entidade: campos privados, com toda mudança de estado passando por um método que verifica a regra.
- modelo anêmico
- Classes só de dados com getters/setters públicos enquanto toda a lógica fica em serviços — qualquer chamador pode contornar as regras e criar estado inválido.
- invariante
- Uma regra que deve sempre valer para o objeto — por exemplo: o total de um pedido nunca é negativo. Em um modelo rico, a entidade a impõe sozinha.