| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/09/2004 10:04:04
|
ualex
JavaGuru
Membro desde: 26/08/2004 18:45:26
Mensagens: 229
Offline
|
1)Pessoal numa estrutura MVC a tela(view) não comunicar-se diretamente com as regras de negocio(model) e sim passar antes por um controlador(controller), isso ta certo ?
-------------------------------------------------------------------
2) O Controlador tem que saber que regra chamar apartir do evento gerado na view o que view chamar apartir do evento gerado no model ?
------------------------------------------------------------------------
3)pergunta tipo a view e o model não fica muito acoplado ao controller ?
---------------------------------------------------------------------------
4)como eu posso fazer um controller razoavel em uma aplicação swing?
ufa, qualquer resposta sera bem vinda.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/09/2004 10:17:36
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
ualex wrote:1)Pessoal numa estrutura MVC a tela(view) não comunicar-se diretamente com as regras de negocio(model) e sim passar antes por um controlador(controller), isso ta certo ?
Sim. Entenda o modelo como V <--> C <--> M e M não fala com V sem ajuda de C. Não misture o que aprendeu de MVC com Swing e o modelo MVC2 de aplicações web.
-------------------------------------------------------------------
ualex wrote:2) O Controlador tem que saber que regra chamar apartir do evento gerado na view o que view chamar apartir do evento gerado no model ?
Não entendi, o controlador é apenas um intermediário, um leva e trás, o carteiro. E o carteiro não precisa saber nada além do endereço e de como transportar as mensagens. O controlador não sabe NADA sobre eventos da view ou sobre eventos do model.
------------------------------------------------------------------------
ualex wrote:3)pergunta tipo a view e o model não fica muito acoplado ao controller ?
Não, a menos que se programe deste jeito.
---------------------------------------------------------------------------
ualex wrote:4)como eu posso fazer um controller razoavel em uma aplicação swing?
Usando servlet no controlador
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/09/2004 10:55:13
|
ualex
JavaGuru
Membro desde: 26/08/2004 18:45:26
Mensagens: 229
Offline
|
1) ok, duvida sanada.
2)
ualex escreveu:
2) O Controlador tem que saber que regra chamar apartir do evento gerado na view o que view chamar apartir do evento gerado no model ?
Luca escreveu
[quote:91dcf3f046]
Não entendi, o controlador é apenas um intermediário, um leva e trás, o carteiro. E o carteiro não precisa saber nada além do endereço e de como transportar as mensagens. O controlador não sabe NADA sobre eventos da view ou sobre eventos do model.
por exemplo tem um item do menu Cadastrar Cliente quando o usuario clicar dispara um (ActionEvent) que sera tratado pelo controlador, né(?)
mas o controlador tem que saber quem gerou o evento para executar a regra de nogocio correta ... como eu poderia fazer isso em uma aplicação desktop. tipo eu teria que fazer um mapeamento dae que eu acho que cria um acoplamento forte.
ex escreveu:
4)como eu posso fazer um controller razoavel em uma aplicação swing?
Luca escreveu:
[quote:91dcf3f046]
Usando servlet no controlador
Mas tipo minha aplicação é swing estilo "Delphi" como eu posso usar uma servlet como controladora ?
This message was edited 2 times. Last update was at 12/11/2004 18:08:18
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/09/2004 11:48:58
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
ualex wrote:por exemplo tem um item do menu Cadastrar Cliente quando o usuario clicar dispara um (ActionEvent) que sera tratado pelo controlador, né(?)
NUNCA. A view trata do que é de view. Releia o que respondi no item 2. O controlador não recebe eventos swing, recebe mensagens tipo post ou get contendo o que vc precisa passar para o model (e vice-versa). Exemplo: Em uma tela de login vc passa nome e senha. Recebe de volta OK ou não OK.
ualex wrote:Mas tipo minha aplicação é swing estilo "Delphi" como eu posso usar uma servlet como controladora ?
Sua aplicação é em Java e servlet é Java, esqueça Delphi, VB, Cobol, etc. Veja http://www.guj.com.br/forum/viewtopic.php?t=16091
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/09/2004 13:36:30
|
urubatan
Moderador
![[Avatar]](/images/avatar/fe9fc289c3ff0af142b6d3bead98a923.jpg)
Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline
|
você pode utilizar MVC com SWING também, sem problema nenhum,
tente desacoplar os eventos swing do controller, faça a propria tela receber os eventos, e chamar o controller, passando os parametros corretos para ele.
uma boa dica é utilizar um XWork da vida, que é uma implementação de command pattern, utilizada pelo webwork para a camada MVC, mas que pode ser utilizada independente do ambiente WEB.
você pode dar uma olhada nos seguintes links (não cheguei a ler com muita atenção, mas falam da utilização do XWork para aplicações SWING )
http://www.magpiebrain.com/archives/000181.html
https://swingwork.dev.java.net/
|
[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/09/2004 13:40:00
|
urubatan
Moderador
![[Avatar]](/images/avatar/fe9fc289c3ff0af142b6d3bead98a923.jpg)
Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline
|
ahh, e se você é alguma espécie de early adopter,
pode dar uma olhada também no Spring Rich Client Platform
http://www.springframework.org/spring-rcp.html
|
[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/09/2004 14:05:38
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
Urubatan, seu post foi muito interessante pois chama a atenção que se pode usar frameworks mesmo com Swing. Eu particularmente acredito muito nisto porque unifica o desenvolvimento no lado servidor permitindo acessar o model com vários tipos de clientes.
PS: Desculpe mas acoplar evento Swing no controller não existe e nem pode existir. Se alguém um dia já fez isto seria talvez uma das maiores burradas que já teria visto nos meus 35 anos de informática. Já imaginou como seria engraçado vendo alguém serializando um descendente de um JFrame e passando para o controller só para verificar usuário e senha de uma tela de login? Seria bem pior do que colocar componente de navegação em banco de dados na tela do cliente como se fazia no início da última década do milênio passado com Delphi ou Clipper.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/09/2004 14:20:44
|
urubatan
Moderador
![[Avatar]](/images/avatar/fe9fc289c3ff0af142b6d3bead98a923.jpg)
Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline
|
Luca wrote:
PS: Desculpe mas acoplar evento Swing no controller não existe e nem pode existir. Se alguém um dia já fez isto seria talvez uma das maiores burradas que já teria visto nos meus 35 anos de informática. Já imaginou como seria engraçado vendo alguém serializando um descendente de um JFrame e passando para o controller só para verificar usuário e senha de uma tela de login? Seria bem pior do que colocar componente de navegação em banco de dados na tela do cliente como se fazia no início da última década do milênio passado com Delphi ou Clipper.
[]s
Luca
valeus,
eu concordo que é péssima ideia, mas não acho que seja um crime tão grande assim,
acho que é um crime, mas de gravidade igual ou até inferior, a acoplar o controller a camada WEB como é feito em praticamente todos os freamworks MVC para web (acho que só o Web Work resolveiu isto, todos os outros passam no minimo o HttpServletRequest para o controller, e até para o model as vezes.
mas não acho que nenhuma das duas coisas seja uma boa ideia.
só para lembrar, o MVC não nasceu para sistemas WEB, nasceu a anos atraz no tempo em que nem se falava em web ainda, para o desenvolvimento de aplicações C++ e Small Talk como a maioria dos design patterns, então, todos eles podem ser utilizados em aplicações desktop e ou web.
nenhum dos design patterns (exceto alguns dos Core J2EE patterns) te obrigam a implementar a aplicação em mais de uma camada fisica, isto é, podem ser utilizados em aplicações standalone.
sei que boa parte do pessoal do forum ja sabe isto, mas é sempre bom dar uma lembrada na origem dos conceitos que utilizamos todos os dias
|
[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/09/2004 14:49:23
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
Passar o HttpServletRequest de um lado para outro DENTRO do controller não é tão ruim em termos de arquitetura, apenas em termos de performance. Aliás aconselho o livro How Tomcat Works para aqueles que quiserem ter uma idéia do peso de um request ou response.
Passar o HttpServletRequest para o Model realmente é feio mas pode ser evitado. Porém frameworks como o Struts as vezes confundem um pouco sobre quem é realmente controller e quem é realmente model. E ainda estimula ficar passando estes monstros a toa.
Passar evento swing para ser tratado pelo Model, bem aí seria MUITO pior tanto em termos de arquitetura como em performance.
Sem polemizar mas já polemizando...só para lembrar o MVC que surgiu lá com o Smalltalk não deve ser lembrado na hora de escrever aplicações web. Aqui o certo é falar em VCM ou mais radicalmente ainda V-C-M para ficar claro que C é apenas um intermediário. Aqui a comunicação é linear ao contrário do MVC do Smalltalk onde M fala com V e a comunicação é circular naquele velho desenho do triãngulo.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/10/2009 21:00:23
|
pedromuyala
JavaEvangelist
![[Avatar]](/images/avatar/bdf429cf164fa35c126cfc08dbb80395.jpg)
Membro desde: 02/01/2009 19:08:04
Mensagens: 340
Offline
|
Mais conteúdo sobre MVC recomendo acessar este link: http://www.guj.com.br/posts/list/129277.java
Vou adicionar este tópico como referência na lista de links sobre MVC que estão na primeira postagem do link que estou recomendando.
Espero ter colaborado!
|
"O melhor grupo não é aquele que reúne membros perfeitos, mas aquele
onde cada um aceita os defeitos do outro, com isso se ajudam e conseguem perdão para seus próprios defeitos".
|
|
|
 |
|
|