dúvida com padrão MVC

Pessoal, gostaria de começar a usar o padrão MVC, mas acontece que eu não entendo muito bem o seu conceito. Assim, eu sei que ele serve para separar a interface com o usuário, da lógica da aplicação. É aí que tá, porque três camadas, e não duas?

Se eu fosse criar uma tela de cadastro de funcionários para armazenar num banco usando JDBC, eu iria criar a tela usando swing, e os botões iriam acessar os métodos de gravar, alterar, excluir, que estão em outra camada, certo? Então qual seria a função da terceira camada?

Sei que é uma dúvida bem simples, mas gostaria muito de começar a usar esse padrão.

Grato, desde já.

essa “terceira camada” faz a ponte entre a tela e a regra de negocio.

Li sobre esse conceito, porém é em termos de código que me surge a dúvida, sabe?

Porque, para eu, que sou aprendiz de Java, bastariam duas camadas. Uma contendo toda a parte gráfica, e outra contendo as validações, os métodos de inserção no banco, etc.

Só precisava entender melhor “os códigos” que fazem parte dessa terceira camada. Sei que posso ser mais produtivo e aplicar uma melhor manutenção, utilizando esse padrão de projeto.

eh meio chato de entender mesmo. depois vc vai achar simples de tudo.
Eu gosto muito das apostilas da caelum, pegue a FJ21 nela tem um capitulo que vc constroi um mini framework MVC. ele vai te ajudar muito a entender o conceito.

boa sorte!

Agradeço a dica, mas eu queria aplicar isso para ambiente desktop, e não para web por enquanto, pois estou mais focado em desktop no momento.

Vocês poderiam me ajudar?

no desktop foge um pouco do padrão mvc. nesse caso, basta vc evitar de colocar regra de negocio dentro das classes de tela que fica bom.

Não sou muito bom em Java e padrões mas veja se isto te ajuda:

Camada Model (Modelo): Você armazena seus objetos que representam entidades como Usuário, Fornecedor, Produto e etc., com todos os seus atributos e métodos.

Camada View (Visão): É a interface do seu sistema com o usuário, não é apenas a interface gráfica mas se utilizar sockets por exemplo, também seriam da camada de visão.

Camada Control (Controle): Digamos que é responsável pela comunicação entre as camadas de visão e modelo, e também garantir a execução correta das regras de negócio. Vamos supor que para salvar um objeto do tipo Usuário na base de dados, é necessário que uma conexão com o banco esteja aberta, é a camada de modelo que de ser responsabilizar por isso.

Espero ter ajudado.

Obrigado mais uma vez. Mas será que teria como me mostrar um exemplo de código? Queria ver como funciona na prática. Algo bem simples mesmo.

Pode ser?

Fim das dúvidas sobre MVC!

Pessoal aproveitando o tópico eu gostaria de perguntar uma coisa relacionada a MVC. Se eu estiver mudando o rumo do tópico me desculpe e desde já gostaria de ser alertado por isso.

Imaginemos que temos um sistema que controle uma concessionária de veículos.
Na hora de salvar um formulário contendo vários dados como nome, placa, marca, modelo, etc… Nós precisamos verificar se essas informações são válidas e se não banco existe o modelo digitado, a placa, etc…

Essa verificação seria feita no Controller, certo?

Penso que seja no Controller pois para um carro tipo Fiat Doblô o modelo é um utilitário e precisariamos checar no banco se tenho esse modelo cadastrado. Precisariamos também saber se a placa do veículo já existe no banco, para esses 2 campos citados eu teria que pesquisar por eles antes de inserir um novo registro.

:arrow: No Model teriamos classes representando a conexão com o banco, o veículo, e uma classe com as operações como select, insert, delete, update (operações básicas de manipulação de informação).
:arrow: No Controller chamariamos um select para verificar se o modelo existe, verificaria se a placa também existe, e depois chamaria um insert para inserir o registro. (na minha visão a lógica do sistema).
:arrow: Na View ficaria somente os campos para o usuário incluir informação e visualizar (visualização e nada mais).

Soruji, eu fiz esse curso http://www.antoniopassos.com.br/index.php/agenda-de-cursos é gratuito e explica e aplica MVC em aplicativo desktop, e mais alguns Patterns. Bom aprendizado!!!