Salve !
Tenho um cenário simples, mas que me deixa com dúvidas:
Há uma Action. A responsabilidade dela é cadastrar um usuário. Então seguindo um fluxo básico:
- Ela recebe o evento da tela (submit do form)
- Recebe os parameters - considerando uma ServletResponse mesmo
- Chama o repository - ou o container, enfim…
- executa um repository.adiciona(new User(…))
- Verifica se adicionou e então salva session
5.0.1 manda pra outra página (de logado) [fim]
5.1. Em caso de falhas pegue-as e salve no request.setAttribute() para mandar ao usuário
5.1.1 exibe a página de falha [fim]
Sem contar que essa mesma action pode ser também o caminho para abertura da página (sem o post do formulário) tornando as coisas meio bagunçadas na pobre action.
Daí o que eu fiz ? Criei um:
que executa os passos quando o botão do post for acionado. Ficou bem limpo, legal. Mas e quando essa Action possuir tantos outros métodos ? Continuará a mesma bagunça !
Não faz sentido o uso de Services, pois é request.getParameter() pra todo lado. É “interface”, não é domínio ainda.
Seguir a ideia original do Servlet - um Servlet para cada JSP, para mim é loucura - tanto que os frameworks abstraem isso para tornar uma Action por módulo =P (e dale web.xml também)
Eu pensei uma Facade. Sei lá, funcionaria e eu poderia ter uma Facade por módulo. Por hora não tenho mais ideias… talvez eu esteja até, viajando
Sugestões ?
Abraços !