1
resposta

Estou com uma dúvida para implementar o padrão State

Boa tarde.

Vamos supor que eu queira implementar o padrão state para controlar os vários estados de um pedido onde pode ser "EM ANDAMENTO", "SEPARANDO MATERIAL", "MATERIAL SEPARADO", "EMITIDO NOTA". Suponha que na regra de negócio da empresa ao passar do status "EM ANDAMENTO" para "SEPARANDO MATERIAL", além de mudar o status do pedido, seja enviado um email para o vendedor que fez o pedido, informando que seu pedido já está no status "SEPARANDO MATERIAL". Como ficaria essa implementação? Pois no DDD a camada de infra não é acessada pelo domínio e sim o inverso, ou seja, a camada de domínio que é acessada pela infra. Porém esta inteligência estaria no domínio.

1 resposta

Oi Rafael, idealmente o estado deveria lidar com qualquer operação relativa a ele... No DDD a camada de cima tem acesso a sua camada logo abaixo e realmente o model flutua por tudo... Nada de te impede do seu estado acessar um Service que concentra essas chamadas de infra...

Por outro lado, aí é mais uma opinião mesmo... Quando o que você leu começa a te impedir de programar o que está na sua cabeça, é algo a se preocupar... O objetivo é resolver o problema que você tem em mãos e se você acha que a técnica do livro ta te impedindo, alguma coisinha talvez não tenha ficado clara mesmo.