Pessoal, estou aprendendo sobre as aplicações MVC.
Como no meu caso estou estudando para usar Hibernate 3.5/JPA 2.0, Spring 3 e no Front-End dois Viewers distintos, um Swing e outro Web. O Web, possivelmente será restrito a algumas páginas simples, por enquanto.
Para ficar mais claro, gostaria de saber se alguém poderia me ilustrar melhor, ou seja, literamente “desenhar” para ver se eu entendo definitivamente essas coisas:
Por exemplo:
±----------±------------±-------------+
| Model | Controller | View |
±----------±------------±-------------+
Onde ficaria cada Framework? Tenho idéia que a maioria das classes do JPA ficariam em Model. Mas será? Elas não atravessariam as fronteiras em direção ao “Controler” as vezes? E o Spring? Nessa as dúvidas são ainda maiores: Ele nunca chega a camada de modelo ou de view ?
Enfim, quais patterns são geralmente usandos em cada camada? As vezes, tirando uma dúvida, vejo alguém fazer referência a “camada de negócio” de forma genérica, o que confunde mais pois não sei se está falando de Modelo ou Controlador… Pra mim ainda fica difícil entender direitinho o que vai onde…
Exemplo: Um DAO vai no modelo ou no Controller? Ou nos dois?
Como seria o Fluxo dos dados? Exemplo: Um dado que está no View para ser persistido: Quando o usuário acionar o comando para persistir a informação que está armazenada em um controle na View, passo esses dados para o Controler e ele passará para o modelo persistir, certo? Mas explicitamente, passo esses dados para qual pattern no Controller? Depois ele passa para qual pattern no Model para esse, enfim, salvar?
E no fluxo contrário? Para recuperar um dado persistido, quem faz? O DAO ? Ele deve ircarregado até qual classe-pattern no Controller? Quem o envia? Chegando lá, esses dados são despejados em que outro pattern para ir para o View? Ou vai no próprio DAO até o view??
Não sei se fui claro, mas o assunto é bem extenso e complexo,… Já li sobre tanta coisa, mas ainda tenho dificuldade em montar o quebra cabeças.
Abradeço já!
[]s.