1
resposta

Responsabilidade do Controller

O método adiciona do ProdutoController faz as validações e chama direto o método de persistência da camada de banco.

Não deveria existir um 'intermediário' na camada de modelo que deveria fazer essas validações das regras de negócio para adição de um produto?

Nesse caso, o controller não está 'fazendo coisas que não deveria'?

Como poderia separar essas responsabilidades? Faz sentido criar uma classe de ProdutoRegrasNegocio?

1 resposta

Bom dia Thomas,

Essas validações que estão na classe ProdutoController poderiam estar sim no intermediário que você mencionou.

Você pode criar uma classe ProdutoService, que é chamada pela classe controller, faz as validações referentes ao serviço e, estando tudo OK, chama o método de persistência (talvez um método da classe ProdutoDAO).

Caso haja validações referentes ao Produto (por exemplo, preço ser maior que zero), pode-se pensar também em incluir tais validações no Produto, já que é algo pertinente ao Produto.

Avisa aí se consegui te ajudar.

Abraço.