| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/09/2010 13:17:40
|
BLV-DOOM JAVA
JavaBaby
Membro desde: 28/06/2009 14:53:09
Mensagens: 81
Localização: São Paulo
Offline
|
Ola pessoal.
Estou desenvolvendo um pequeno sisteminha de CRUD para entregar na faculdade no qual estou utilizando JSF (informação irrelevante mas que pode ajudar), e tenho uma duvida séria em quanto o padrão MVC.
Primeiro vou postar o código das minhas classes Dao e Model:
Classe: ClienteModel
Classe: ClienteDao
Agora a minha duvida:
Como posso implementar a minha classe control?
Pois vejam só o meu drama:
Na faculdade o professor falou que o correto é:
view ---> control ---> model ---> dao
ou seja:
view chama a classe control, control chama model e model chama dao.
OK!
Agora preciso saber se numa arquitetura para Web eu teria que tratar minhas exceções de banco (os throws que vcs vêem nas assinaturas dos métodos)
na classe DAO, na Model ou no Control.
Pois como utilizarei JSF não sei como organizar minha arquitetura, pois fico sem saber como determinar meus Managed Beans.
Por favor me ajudem nesta duvida!
Obs: Eu não tenho essa duvida esclusivamente para Web, mas também para Swing. É uma duvida que esta me matando!
Vlw!
|
É um sufoco aprender JAVA, mais ao mesmo tempo é muito bom!!! |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/09/2010 14:44:52
|
AndreMendes
JavaChild
![[Avatar]](/images/avatar/37aa7611d718537b9c8cf45afcfd4856.jpg)
Membro desde: 23/09/2009 02:37:07
Mensagens: 129
Offline
|
Agora preciso saber se numa arquitetura para Web eu teria que tratar minhas exceções de banco (os throws que vcs vêem nas assinaturas dos métodos)
na classe DAO, na Model ou no Control.
Olha, sou iniciante, mas acho que as exeções, no seu caso, devem ser tratadas na camada de controle e ali mesmo remanejar o usuario para o caminho certo de acordo com a exceção ...
Me corrijam se eu estiver errado, asssim também aprendo
Abraços
|
André Mendes Duarte
Bacharelando em Ciência da Computação na Universidade Do Estado de Santa Catarina |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/09/2010 09:16:03
|
luizSC
JavaBaby
Membro desde: 29/07/2010 19:10:45
Mensagens: 76
Offline
|
BLV-DOOM JAVA wrote:Ola pessoal.
Na faculdade o professor falou que o correto é:
view ---> control ---> model ---> dao
Penso que o MVC é:
--------v i e w<--- ---> model[ ---> dao ]
--------|---- ^--------_-----^
--------|-----|-----_---------|
--------|_control_______|
A função do control é prover a navegação entre as views e delegar para o modelo as entradas/ações do usuário, sem criar acoplamento entre os eles.
Observe que o DAO não faz parte do padrão (explicitamente). Senão seria MVCD
As exceções que seu DAO lança (SQLException, ClassNotFound....) provavelmente não são exceções do domínio do usuário do sistema e portanto, deveriam ser tratadas no modelo e se for o caso, transformadas numa exceção com mensagem adequada ao usuário e relançada para a view.
Abraços
This message was edited 2 times. Last update was at 04/09/2010 21:42:43
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/09/2010 17:56:35
|
asaudate
GUJ Master
![[Avatar]](/images/avatar/974e2945a18e0bfb8e3aa8becac3e65c.jpg)
Membro desde: 01/09/2007 19:31:41
Mensagens: 1669
Localização: São Paulo
Offline
|
Na verdade, a confusão aqui é : DAO faz parte do modelo? Resposta: SIM!
O modelo é tudo que será , no contexto da camada, agnóstico quanto ao método como foi invocado. Por isso existe o controlador: para enviar a requisição para o modelo , e este não se preocupará em como foi chamado.
Agora, quanto ao seu problema... eu percebí uma grande tendência de seguir Anemic Domain Model, aí. O jeito mais interessante de fazer isso seria, na verdade, você embutir alguma lógica de processamento dentro da própria entidade (segundo esta referência). Como, talvez pra você, isso não seja interessante, uma alternativa seria a criação de uma Fachada para que você possa descobrir, a partir da fachada, o que é mais interessante em cada caso, seja ele Create, Retrieve, Update ou Delete (não, isso não é tarefa do controlador).
[]´s
|
Alexandre Saudate
__________________________
Do not try to bend the spoon - that's impossible. Instead, only try to realize the truth: there is no spoon.
Série quickstart: Spring+Spring Security+Jersey+Hibernate (JPA) -> https://github.com/alesaudate/kickstart-springjerseyhibernate
Precisa de uma ferramenta boa para web services, mas está cansado das ferramentas tradicionais? #Banshee
Evite usar Axis2!!! Leia aqui para mais detalhes!
@alesaudate
Quer ler um blog especializado em web services e SOA?
 |
|
|
 |
|
|
|
|