O que entra no "Controlador" em "MVC"?

Acho que entendo os conceitos básicos do MVC - o Modelo contém os dados e o comportamento do aplicativo, o View é responsável por exibi-lo ao usuário e o Controlador lida com a entrada do usuário. O que eu tenho dúvidas é exatamenteque vai no controlador.

Vamos dizer, por exemplo, que eu tenho uma aplicação bastante simples (estou pensando especificamente em Java, mas suponho que os mesmos princípios se aplicam em outro lugar). Eu organizo meu código em 3 pacotes chamadosapp.model, app.view eapp.controller.

Dentro doapp.model pacote, eu tenho algumas classes que refletem o comportamento real do aplicativo. Estesextends Observable E usesetChanged() enotifyObservers() para acionar as visualizações para atualizar quando apropriado.

oapp.view pacote tem uma classe (ou várias classes para diferentes tipos de exibição) que usajavax.swing componentes para manipular a exibição. Alguns desses componentes precisam ser redirecionados para o modelo. Se bem entendi, o View não deve ter nada a ver com o feedback - que deve ser tratado pelo Controller.

Então, o que eu realmente coloco no Controlador? Eu coloco opublic void actionPerformed(ActionEvent e) na vista com apenas uma chamada para um método no controlador? Em caso afirmativo, qualquer validação, etc., deve ser feita no Controlador? Em caso afirmativo, como faço para realçar as mensagens de erro de volta para a Visualização - elas devem passar pelo Modelo novamente ou o Controlador deve enviá-las diretamente para o View?

Se a validação é feita na View, o que eu coloco no Controller?

Desculpe pela longa pergunta, eu só queria documentar minha compreensão do processo e espero que alguém possa esclarecer essa questão para mim!

questionAnswers(13)

yourAnswerToTheQuestion