Onde implementar as Regras de Negócio?

Pessoal!

Pergunta que não quer calar: ONDE IMPLEMENTAR AS REGRAS DE NEGÓCIO?

Onde trabalho (ambiente WEB) temos a seguinte arquitetura:

Modelo MVC, onde:

utilizamos STRUTS.

VIEW: somente JSP com algumas validações javascript, e alguns componentes (ex: listagem).

ACTION: É A LETRA “C” (CONTROLLER) do modelo MVC? AQUI QUE É IMPLEMENTADA AS REGRAS DE NEGÓCIO ou somente tratamento das requisições e redirecionamentos?

MODEL: É A LETRA “M” (MODELO) do modelo MVC? OU AS REGRAS DE NEGÓCIO DEVE SER IMPLEMENTADAS AQUI?

Temos também:

DTO: que é o espelho das tabelas (cada tabela tem seu respectivo DTO)

FORM: representar o Formulário

DAO: nossa camada de persistencia

RESUMINDO:

JSP faz uma requisição para a ACTION que por sua vez captura os dados do Form, carrega os respectivos DTO´s e chama um método na MODEL (ex: listarCliente) que vai em uma DAO respectiva (que faz todo o acesso ao Banco). A DAO retorna para a MODEL que retorna para a ACTION que faz o devido redirecionamento.

A Dúvida é: Onde implementar as REGRAS DE NEGÓCIO?

Ex: Se eu tenho que adicionar uma informação a mais (que não está no banco) em uma combo-box, onde devo implementar? na ACTION ou na MODEL?

Um simples if é uma REGRA DE NEGÓCIO?

Escrevi demais…

Sim, regras de negócio vão na camada model.

Não, um simples if não vai na Model, a menso que o if faça parte da regra de negócio.

Um ítem de Interface gráfica, que não está no Banco de Dados, como o ComboBox que você usou como exemplo, seria melhro colocado na própria View.