Estou desenvolvendo um projetinho desktop, mas ainda tenho algumas dúvidas quanto ao uso correto da arquitetura MVC, estou utilizando o netbeans, posso colocar código de acesso ao BD dentro dos eventos dos componentes, um mouseClick, por exemplo?
Alguém teria um projetinho, ou exemplo prático, utilizando a arquitetura, e o mais importante, que possa passar pra mim ter como exemplo??
Ja procurei na net e encontrei muita coisa, mas as vezes não encontro uma resposta que tire a dúvida de uma pergunta expecífica realmente.
Exemplo eu não tenho, mas se usar o padrão MVC, não deve colocar chamadas ao banco dentro da Visão, que seria a interface.
O que vc deve fazer é criar uma classe Controller e é essa classe controller que vai fazer o acesso ao banco. E a interface se comunica com o controller.
Então se em um evento de um botão você precisa disparar uma consulta no banco, no evento do botão vc faz uma chamada ao controller e ontroller faz a chamada ao banco e depois te devolve o resultado.
Então teu projeto teria mais ou menos essa arquitetura de classes: Pessoa(Classe com os atributos e metodos get e set) / PessoaDao(Classe que acessa o banco de dados) / PessoaController(Classe que faz o acesso ao PessoaDao e ao PessoaFrame) / PessoaFrame(Classe de interface com usuario).
Bom, pra confirmar no caso, Pessoa(estaira dentro do Modelo), PessoaController(como o próprio nome sugere, dentro do controle),
PessoaFrame(dentro da visão) e PessoaDao(dentro de DAO, vejo que é bastante usado também).
Validações posso deixar dentro do modelo mesmo, quanto a isso nada a ver né??
A classe que faz conexão com o banco, posso deixar dentro do DAO também?? não preciso deixar separada, ok?
Validações posso deixar dentro do modelo mesmo, quanto a isso nada a ver né??
A classe que faz conexão com o banco, posso deixar dentro do DAO também?? não preciso deixar separada, ok?
[/quote]
Na verdade para cada classe modelo, ou cada Entidade, vc deverá ter um uma classe Dao correspondente, a não ser que essa entidade não tenha relação nenhuma com o banco de dados, dai não precisa ter o Dao dela. A classe de conexão pode sim ficar dentro do Dao.
Sobre a validação, depende da validação, se for uma validação de interface, ela deve ficar na Visão, mas caso seja alguma validação que seja feita no método setNome() por exemplo, pode sim ficar na classe modelo. E suas regras de negócio devem ficar na classe Controller.
[quote]Bom, pra confirmar no caso, Pessoa(estaira dentro do Modelo), PessoaController(como o próprio nome sugere, dentro do controle),
PessoaFrame(dentro da visão) e PessoaDao(dentro de DAO, vejo que é bastante usado também). [/quote]
Isso mesmo, o DAO significa Data Access Object, e é um padrão para as classe com acesso a banco de dados.