MVC para desktop

Sou iniciante em Java e estou fazendo um projeto em que devo aplicar conceitos de MVC. Aguém poderia me explicar qual é a diferença entre MVC para WEB e Desktop. Struts seria o MVC voltado para WEB? Se alguém puder me auxiliar ficarei muito grata.

oi…

o Struts aplica o conceito MVC para Web sim…

o modelo MVC seria vc separar sua aplicação em camadas teóricamente independente uma da outra ( mas creio que isso nao é completamente possivel ). O vc poderia fazer para ficar melhor o desenvolvimento em 3 camadas seria criar para cada camada um projeto diferente em seu framework ( uma dica/sugestao ). Na camada de modelo vc colocaria os objetos bean, dao, bo entre outros, ou seja, objetos que interagem diretamente com o banco de dados. Na camada de cotrole vc faz o negocio de sua aplicação, assim…“vc pegaria os dados da view e mandaria para a controle e a controle faria verificacoes, validacoes entre outros, a camada de controle pegaria esses dados e jogaria para a camada modelo que faria a psersistencia na base de dados e se tudo ocorresse bem mandaria o objeto devolta para a classe view ou retornaria uma mensagem dizendo que nao foi possivel fazer a operacao”, na camada view vc teria que interagir com a camada de controle somente mandando objetos e recebendo msg de err/sucesso, fica meio complicado mas a ideia é ± essa blz.

Falwos

Ei JFNando…

Cara acho que vc disse 70% corretamente, tem um erro muito comun que vejo nas aplicações:

O controle deve somente receber os dados “no caso da web os paremetros da url ou post” e popular um Bean, depois chamar o seu Obejto java com a regra de negócio e esperar o resultado e encaminha-lo para a view responsável.

Validações são da regra de negócio e naum do Controller, como o nome diz ele Controla o fluxo de comunicação entre a View e o Model.

Dúvidas vejam os BluePrints do site java.sun.com

t+

Quanto ao MVC para o desktop, naum conheço nenhum framework tipo o struts para uma aplicação assim, tirando o Swing que foi construido de forma excepcional. Com ele é totalmente possível implementar o MVC numa aplicação Stand-Alone, tanto a regra de negócios da aplicação pode ser bem independente como a regra de view, pode ficar bem implementada.

Mas normalmente sua regra de negócio ficará fora do módulo StandAlone. Ele irá se comunicar com a regra de negócios via Servlets, RMI, EJB, WebServices…

Claro se ela for uma aplicação stand alone e naum somente um View/Módulo de sua app

t+

Pelo que entendo o “MVC Desktop” eh o verdadeiro MVC, com Model e View separados, sendo coordenados pelo Controller. Aquele do GoF. :smiley:

Ja o “MVC Web” (utilizando tua classificacao :)), eh uma adaptacao do padrao para Web. Nao sei se eh um “verdadeiro” MVC, devido a natureza das aplicacoes Web. Inclusive durante um tempo era comum o termo “Model 2”, nos primordios dos servlets e JSP. Mas enfim, o termo acabou pegando.

Exemplo de Framework:
http://wiki.opensymphony.com/display/XW/XWork

Links que podem ajudar:


http://www.clientjava.com/blog/search.action?query=mvc

Marcio Kuchma

Obrigada pessoal pelas dicas, pra quem não está por dentro desse assunto como eu, deu pra dar uma clareada. Procurei tanto na internet sobre isso mas só tem explicações básicas pra WEB. Será que existe um livro que fale sobre esse assunto? Se alguém souber e puder me indicar algum agradeço. Obrigada novamente!!!

Tinha um cara aqui do GUJ que tinha um, o JForms. Ele se propunha a ser mais do que um simples framework mvc para desktop. Não sei em que pé esta o projeto.