Olá pessoal do GUJ!
Sou novato aqui, e em Java também(estudo Java há pouco menos de 1 ano), e este fórum já tem me ajudado muito em minhas pesquisas ultimamente.
Indo direto ao assunto, estou com algumas dúvidas quanto ao Pattern MVC (sei que já devem estar cheios disso, pois já li dezenas de tópicos sobre esse assunto, porém, nenhum tirou minhas dúvidas).
Primeiro, colocar o que entendi sobre o assunto até agora:
Controller
-Define o comportamento da aplicação
-Mapeia as ações do usuário para atualização do modelo
-Seleciona a view para saida de dados
-Um controller para cada funcionalidade (?)
View
-Fornece dados ao model (será mesmo?)
-Faz requisições (para o modelo) de atualizações no modelo (quando o modelo é acessado e seu estado é modificado)
-Envia ações (eventos) para o controller (será mesmo)
-Permite a seleção da view apropriada por parte do controller
Model
-Encapsula o estado da aplicação (?)
-Responde a consultas (vindas da view de estado do modelo (?))
-Expõe a funcionalidade da aplicação (regras de negócios?)
FONTE: http://desenvolvendoaplicacoeseamente.files.wordpress.com/2009/12/mvc-structure-generic.gif
Ou seja: o usuário interage com a view, que manda a ação para o controller, que atualiza o model de acordo com a requisição, o model notifica a view sobre a alteração no seu estado, e a view (através de métodos) atualiza a sua interface gráfica.
Agora as dúvidas:
É exatamente isso o que acontece ou estou falando bobeira?
O controller não precisará saber de onde veio a ação (através de listeners), a própria view instanciará o controller e, ocorrendo a ação, dentro do evento da view passo ao controller o que fazer, ou como alterar o model?
Como eu faria para o model notificar a view sobre alterações em seu estado?
Li em alguns posts do sergiotaborda por aqui, e se entendi bem, a view pode se atualizar pegando os atributos do model. É assim mesmo?
Não quero nada pronto e mastigado aqui não, porém, quando houver necessidade, exemplos serão sempre muito bem vindos.
Conto com a ajuda de vocês, e esperarei as primeiras respostas para poder prosseguir com o tópico.
Muito obrigado desde já! Um grande abraço a todos!