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.
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.
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.
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).