Então, se eu tenho uma classe DAO, uma página,uma Action(Struts)e uma página de saida, cada classe desa seria qual parte do mvc?
tipo, a view é a página…
como fica?
Então, se eu tenho uma classe DAO, uma página,uma Action(Struts)e uma página de saida, cada classe desa seria qual parte do mvc?
tipo, a view é a página…
como fica?
Model - Java Bean, classe contendo um construtor sem argumentos e getters and setters, algumas pessoas podem implicar com essa definição, mas se vc achar necessário se aprofundar basta pesquisar. Num primeiro momento é o que é preciso saber.
View - o jsp
Controller - sua action
A sua DAO é chamada pelo controller, no caso pela Action.
Model - Java Bean, classe contendo um construtor sem argumentos e getters and setters, algumas pessoas podem implicar com essa definição, mas se vc achar necessário se aprofundar basta pesquisar. Num primeiro momento é o que é preciso saber.
View - o jsp
Controller - sua actionA sua DAO é chamada pelo controller, no caso pela Action.
O DAO faz parte do Model também.
Para o MVC, a forma usada para persistir dados não é importante. Você pode usar arquivos (txt, xml, …) ou banco de dados, para o MVC não faz diferença, ele não exige que seja de uma maneira específica.
Mas as lógicas e regras de negócios contidas nas classes com este fim, fazem parte do Model, neste caso citado o padrão DAO.
O Model não é formado apenas pelas classes de entidades ou pojos, mas também pelas regras de negócio que as envolvem.
Model - Java Bean, classe contendo um construtor sem argumentos e getters and setters, algumas pessoas podem implicar com essa definição, mas se vc achar necessário se aprofundar basta pesquisar. Num primeiro momento é o que é preciso saber.
View - o jsp
Controller - sua actionA sua DAO é chamada pelo controller, no caso pela Action.
O DAO faz parte do Model também.
Para o MVC, a forma usada para persistir dados não é importante. Você pode usar arquivos (txt, xml, …) ou banco de dados, para o MVC não faz diferença, ele não exige que seja de uma maneira específica.
Mas as lógicas e regras de negócios contidas nas classes com este fim, fazem parte do Model, neste caso citado o padrão DAO.
O Model não é formado apenas pelas classes de entidades ou pojos, mas também pelas regras de negócio que as envolvem.
Faz isso não, chamar o DAO pela Action, coloca uma camada de negócio entre a DAO e a Action, assim a DAO cuida da persistencia, a Action do controle do que vem das FORMs e essa classe intermediária, poderia ser um service ou business cuida da comunicação entre a action e a DAO. 8)
Eu achava que o DAO iria ligado direto ao model, por exemplo para recuperar um objeto do BD, teria que chamar um método do model e esse método do model chamaria o DAO pra buscar no BD. O correto então é ter essa camada intermediária entre control e DAO, isso? Por que não chamar direto o DAO por meio do control? Qual seria a responsabilidade desta camada intermediária?
Existem algumas abordagens diferentes sobre o modelo MVC.
O padrão e puro, para o Struts 2 seria:
jsp - View
Action - Controller
DAO/Bean - Model
No Struts 1
jsp/Form - View
Action - Controller
DAO/Bean - Model
Porém, existem algumas diversificações, como o Eduardo sugeriu. É possível inserir outras camadas complementares, que tornam o tráfego de dados entre as camadas mais adequado, pois, cada camada fica responsável por uma ação específica.
Geralmente este modelo implementa
jsp/Bean - View (interação com o usuário)
Action - Controller 1 (Camada que cuida da view)
Service - Controller 2 (Camada que cuida da persistência)
DAO - Model 1 (Camada de persistência)
VO/TO/BO - Model 2 - Classes que permitem o tráfego de dados entre as camadas.
Neste modelo, os beans só vão da view até controller 1, todos os atributos são refletidos em objetos VO/BO/TO e transitarão utilizando DTO (data transfer objects).
esta abordagem estaria correta ?
View -> Controler -> DAO(getLista/set…) -> (bd/xml/txt/ws)
------------------------- classes model
DAO retorna (objetos / lista de objetos) para o controller / controller manda objetos para view, -> view imprime
a view é a recepcionista, controller é o gerente, dao é o peão, bd/xml/txt/ws é a matéria prima, e classes model, são o produto que a recepcionista irá entregar/receber
Existem algumas abordagens diferentes sobre o modelo MVC.
O padrão e puro, para o Struts 2 seria:jsp - View
Action - Controller
DAO/Bean - ModelNo Struts 1
jsp/Form - View
Action - Controller
DAO/Bean - ModelPorém, existem algumas diversificações, como o Eduardo sugeriu. É possível inserir outras camadas complementares, que tornam o tráfego de dados entre as camadas mais adequado, pois, cada camada fica responsável por uma ação específica.
Geralmente este modelo implementa
jsp/Bean - View (interação com o usuário)
Action - Controller 1 (Camada que cuida da view)
Service - Controller 2 (Camada que cuida da persistência)
DAO - Model 1 (Camada de persistência)
VO/TO/BO - Model 2 - Classes que permitem o tráfego de dados entre as camadas.
Neste modelo, os beans só vão da view até controller 1, todos os atributos são refletidos em objetos VO/BO/TO e transitarão utilizando DTO (data transfer objects).
Isso mesmo, senão você acaba misturando chamada do DAO com coisas da tela com regras de negócio, tem outros patterns para ajudar nisso.
Mas está correto dizer que
Model == Beans e DAOs
Controller == Action, Managed Beans e Controller
View == JSP, XHTML
Não sei se te ajuda mas vamos lá…
Baseando-se no modelo MVC fiz minha própria modelagem utilizando 5 camadas distribuídas desta forma:
Camada Bean ? Camada dos objetos de negócio, responsável pelo encapsulamento dos dados.
Camada View ? Camada de apresentação visual da aplicação
Camada BO ? Camada das regras de negócio da aplicação
Camada Control ? Camada do controle de fluxo da aplicação
Camada DAO ? Camada de persistência com o banco de dados
Fazendo assim você tem um maior controle sobre sua aplicação e também fica muito mais fácil de dar manutenção em seu código.
Para que está iniciando pode se confundir com o MVC clássico.
O que são as camadas VO/TO/BO?
Nesse post eu deixei um link para os mais famosos Patterns que temos: http://javawora.blogspot.com/2011/12/tutorial-vraptor.html
Está localizado no início do texto:
Aconselho antes a ler sobre Patterns como DAO, Repository, MVC, TO, PO, VO, DTO.
Também conselho esses livros: http://www.livrariasaraiva.com.br/produto/1995765/use-a-cabeca-!-padroes-de-projetos-%28design-patterns%29-2-ed-revisada/
e sobre arquitetura http://www.livrariasaraiva.com.br/produto/3705598/introducao-a-arquitetura-e-design-de-software-uma-visao-sobre-a-plataforma-java/