Acreditem ou não, eu li muitos, mais muitos tópicos sobre MVC e desktop. Cada um com uma opinião, uma resposta, bem difícil ter estabelecido alguma coisa. Então vou pedir a ajuda de vocês a ver se a implementação desse padrão de projeto está boa no meu projeto ou não. Vamos lá.
Estou fazendo um sistema. Tem banco de dados e tem lado cliente servidor( chat ). Criei os pacotes, model, view e controller.
Na view eu coloquei as GUI( no caso são três ). E também coloquei uma pasta na view com os ícones usados pelo programa. Na minha primeira GUI, é uma tela inicial de login. Nela eu não adiciono ouvintes de componentes. Eu apenas crio métodos get para os componentes que precisam ser registrado ouvintes e fazer algo. E somente crio um objeto da classe ManipuladorDeEventos que está no pacote controller, passando a referência da gui( this ) para o controller.
Na classe controller eu pego e registro ouvintes para os botões da gui inicial. Tipo assim:
guiInicial.getComponenteQualquer().addActionListener( aqui fica o ouvinte que é um método na própria classe controller );
Ai quando eu aperto o botao, gera o evento, o controller escuta, executa o método correspondente, que no caso é? A verificação do usuário no banco de dados.( Lembra que eu falei que é uma tela de login? ).
Ai controller cria um objeto com a classe que se conecta com o banco de dados( Fica em model ela ), passa os dados para ela, faz a verificação também se foi digitado algo na gui inicial.
A classe model faz a verificação no banco de dados se o usuário existe e se é ele que está tentando entrar e diz para o controller a partir de métodos get com variaveis boolean de conectado e usuarioExiste que tudo está ok. Ai a classe controller vendo que está ok, atualiza ela mesmo a view com os métodos get dos componentes que ela já tem.( Lembrando que a gui inicial tinha passado uma referência para ela no começo ). E depois chama outra GUI que vai ser a tela do programa depois de entrar no sistema. Tendo assim uma referência já da nova GUI para atualizar os componentes de acordo com a interação e fazendo a mesma coisa que fazia com a outra GUI, registrando ouvinte dos componentes e atualizando a GUI de acordo com os resultados da Model. O que vocês acham disso?