Dúvida simples sobre MVC  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
xxmayconxx
JavaTeenager
[Avatar]

Membro desde: 21/12/2010 19:23:18
Mensagens: 183
Offline

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?
erfs
What is classpath?

Membro desde: 23/03/2010 08:53:34
Mensagens: 7
Offline

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.

This message was edited 1 time. Last update was at 25/12/2011 10:46:42

romarcio
JWizard
[Avatar]

Membro desde: 17/12/2008 10:05:49
Mensagens: 2434
Localização: Santa Maria/RS
Offline

erfs wrote: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.


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.

Bacharel em Sistemas de Informação.
Oracle Certified Professional, Java SE 6 Programmer

Blog | Facebook | Twitter
[WWW]
Eduardo Bregaida
Moderador
[Avatar]
Membro desde: 13/11/2003 14:11:35
Mensagens: 2416
Localização: São Caetano do Sul - SP
Offline

romarcio wrote:
erfs wrote: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.


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.

Blog - Java Anywhere
@bregaida - Twitter
Flickr - Fotos
Cursos de Java?

"Você poderia me dizer, por favor, qual caminho eu devo seguir?"
"Isto depende muito de onde você deseja chegar."
-Lewis Carroll, Alice no País das Maravilhas
[Email] [WWW] [MSN]
gRoOve
JavaEvangelist
[Avatar]

Membro desde: 11/03/2009 09:17:33
Mensagens: 443
Localização: Curitiba - PR
Offline

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?



[Email]
drsmachado
GUJ Expert

Membro desde: 25/09/2010 12:54:06
Mensagens: 3986
Localização: Curitiba / São José dos Pinhais - PR
Offline

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

Rumo aos 4000
"Os homens de verdade assumem suas responsabilidades e culpas. Esquivar-se e dar desculpas é atitude dos tolos, que preferem não se comprometer".

Lugar de perguntar é no fórum!
Não respondo via MP
Não respondo por Email
Não respondo por IM
douglaskd
GUJ Ranger
[Avatar]

Membro desde: 04/07/2010 00:51:49
Mensagens: 839
Localização: Campinas - SP
Offline

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
Eduardo Bregaida
Moderador
[Avatar]
Membro desde: 13/11/2003 14:11:35
Mensagens: 2416
Localização: São Caetano do Sul - SP
Offline

drsmachado wrote: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).


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

Blog - Java Anywhere
@bregaida - Twitter
Flickr - Fotos
Cursos de Java?

"Você poderia me dizer, por favor, qual caminho eu devo seguir?"
"Isto depende muito de onde você deseja chegar."
-Lewis Carroll, Alice no País das Maravilhas
[Email] [WWW] [MSN]
Aldeir
Thread.start()
[Avatar]

Membro desde: 23/03/2010 07:31:16
Mensagens: 37
Localização: Valinhos - SP
Offline

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.
gRoOve
JavaEvangelist
[Avatar]

Membro desde: 11/03/2009 09:17:33
Mensagens: 443
Localização: Curitiba - PR
Offline

O que são as camadas VO/TO/BO?



[Email]
Eduardo Bregaida
Moderador
[Avatar]
Membro desde: 13/11/2003 14:11:35
Mensagens: 2416
Localização: São Caetano do Sul - SP
Offline

gRoOve wrote: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/



Blog - Java Anywhere
@bregaida - Twitter
Flickr - Fotos
Cursos de Java?

"Você poderia me dizer, por favor, qual caminho eu devo seguir?"
"Isto depende muito de onde você deseja chegar."
-Lewis Carroll, Alice no País das Maravilhas
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team