Novo no fórum, dúvida antiga (MVC)  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
felipealencar
Smalltalk
[Avatar]

Membro desde: 10/12/2009 12:34:33
Mensagens: 1
Localização: Praia do Francês, Marechal Deodoro - AL
Offline

Opa galera, me cadastrei agora mas já "frequento" o guj faz algum tempo, e ultimamente me interessando cada vez mais por Java e POO e de um modo geral.
Então, estou com aqueles projetos de faculdade pra fazer, descrevendo rápido é um gerenciador de competições que utilizará banco de dados e deverá ser organizado sobre MVC.
Li muito sobre essas três letras aí, mas até agora não tenho uma certeza de como implementá-lo no meu código, na minha cabeça está algo assim:

-View (Swing) - Classes de visão do usuário
--Instância do Controller
-Controller - Classes com as regras de negócio, Validação de dados e etc.
--Instância do Model
-Model - Beans e DAO

É isso? Espero que alguém me dê uma luz aqui kkkkkkk se tô no caminho certo ou se tenho que reorganizar meu código aqui :s...

[]'s

This message was edited 1 time. Last update was at 10/12/2009 12:47:09

[WWW] [MSN]
rodpuc
Java Ninja
[Avatar]

Membro desde: 17/08/2006 14:55:20
Mensagens: 299
Offline

Sim é isso. Ou quase isso.

Acho que vc só se expressou mal ao usar "instância do Controller" e "instancia do Model"... seria mais apropriado dizer que o View depende do Controller e o Controller depende do Model, já que estamos falando de abstrações e não de classes.
asaudate
GUJ Master
[Avatar]

Membro desde: 01/09/2007 19:31:41
Mensagens: 1669
Localização: São Paulo
Offline

Aaaaaahmn... não.

No seu modelo, fica TODO o backend: classes de negócio, regras, etc., etc. Lembre-se, o MVC é um padrão q serve para, entre outras coisas, permitir q vc consiga mudar o cliente sem correr o risco de dar m* na implementação do código.


Então,
M: classes de negócio , regras de negócio e acesso a banco de dados.
V: Visão (Swing, JSP, ou coisa que o valha)
C: responsável por recuperar os dados de V e levar para M (para não acoplar diretamente uma coisa com a outra).


Espero ter ajudado.

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?

rodpuc
Java Ninja
[Avatar]

Membro desde: 17/08/2006 14:55:20
Mensagens: 299
Offline

sim mas... isso q vc falou é exatamente a msm coisa que ele falou lá no inicio...
jgbt
GUJ Master
[Avatar]

Membro desde: 04/06/2003 15:01:48
Mensagens: 1286
Localização: Porto Alegre/RS
Offline

MVC não tem nada a ver com separação de camadas.
Ex:
Swing implementa MVC e esta em uma unica "camada".

Por favor, faca uma busca no forum sobre MVC. Vc vai achar muita coisa.

[]´s


João Bier
Desenvolvedor Java
[Email]
asaudate
GUJ Master
[Avatar]

Membro desde: 01/09/2007 19:31:41
Mensagens: 1669
Localização: São Paulo
Offline

Swing tem TUDO a ver com MVC E com separação de camadas.

Ex.: telas (frames, applets, windows, etc.) => V
Listeners => C
Classes com regras de negócio e DAOs => M

(Já diria Kathy Sierra... como você faz se, de um dia pro outro, você precisar mudar a sua view de Swing para JSP ? MVC!)

E eu não falei a mesma coisa q ele disse no começo. Disse que o "C" NÃO possui regras de negócio.

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?

rodpuc
Java Ninja
[Avatar]

Membro desde: 17/08/2006 14:55:20
Mensagens: 299
Offline

Tem toda razão, n tinha lido "regras de negócio" no C dele, passou desapercebido.

This message was edited 1 time. Last update was at 15/12/2009 14:39:36

sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3420
Offline

asaudate wrote:Swing tem TUDO a ver com MVC E com separação de camadas.

Ex.: telas (frames, applets, windows, etc.) => V
Listeners => C
Classes com regras de negócio e DAOs => M


Essa separação está errada. Os eventos não são o controler e o DAO não é o model.


Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
asaudate
GUJ Master
[Avatar]

Membro desde: 01/09/2007 19:31:41
Mensagens: 1669
Localização: São Paulo
Offline

Tá, olha só....


Se for entrar a fundo em programação em camadas, etc e coisa e tal, lógico q a aplicação tem 2.323.121 camadas.

Caso é que não precisamos complicar a coisa mais do que ela pode ser complicada, então, simplifiquemos!

MVC é um pattern para quem quer separar visão de negócio. DAO não é model, beleza, mas... se a gente for olhar do ponto de vista separatista (e querendo simplificar as coisas), porque não jogar DAO como se fosse Model? (Lembrando, eu SEI que não é).

Quanto aos listeners, eu não disse nada em relação a eventos, disse em relação a listeners. Controllers pegam a requisição e a enviam ao model... como uma aplicação Swing deveria ser, quando se trata de MVC.

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?

sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3420
Offline

asaudate wrote:Tá, olha só....


Se for entrar a fundo em programação em camadas, etc e coisa e tal, lógico q a aplicação tem 2.323.121 camadas.

Caso é que não precisamos complicar a coisa mais do que ela pode ser complicada, então, simplifiquemos!

MVC é um pattern para quem quer separar visão de negócio. DAO não é model, beleza, mas... se a gente for olhar do ponto de vista separatista (e querendo simplificar as coisas), porque não jogar DAO como se fosse Model? (Lembrando, eu SEI que não é).

Quanto aos listeners, eu não disse nada em relação a eventos, disse em relação a listeners. Controllers pegam a requisição e a enviam ao model... como uma aplicação Swing deveria ser, quando se trata de MVC.


Listeners recebem eventos.

Existe uma diferença entre simplificar e fazer asneira.
Porque não jogar DAO como model ? simplesmente porque não pode.
MVC não é para separar visão de negocio. É para separar responsabilidade das classes.

Por favor procure por MVC no GUJ antes de continuar.

Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
asaudate
GUJ Master
[Avatar]

Membro desde: 01/09/2007 19:31:41
Mensagens: 1669
Localização: São Paulo
Offline

Sheldon Cooper,

Não preciso procurar no GUJ um padrão que já conheço. Mas, caí na curiosidade de dar uma olhada no seu blog, e fui direto pra seção de comentários. Olha só, com tantas pessoas te chamando de arrogante, não acha que você precisa reconsiderar algumas coisas (tipo sua participação no GUJ) ?

Um monte de gente já colocou em suas assinaturas que "isto não é uma verdade absoluta". Quem sabe você não deveria considerar se o que VOCÊ fala é ou não uma verdade absoluta? (Vide comentário do Danilo no seu post sobre MVC).

Não venha encher o saco de iniciantes na linguagem com esse papinho de "DAO não é model" ou "eventos não são controllers". Java É uma linguagem complicada e não precisamos de mais gente pra complicar ainda mais.


Ah, caso você não saiba quem é Sheldon Cooper... procure no Google!

Sem mais.

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?

rodpuc
Java Ninja
[Avatar]

Membro desde: 17/08/2006 14:55:20
Mensagens: 299
Offline

Ok, e vc propõe jogar DAO onde então?
jgbt
GUJ Master
[Avatar]

Membro desde: 04/06/2003 15:01:48
Mensagens: 1286
Localização: Porto Alegre/RS
Offline

Bom,
vou tentar responder para que outros não cometam o mesmo erro.

MVC não é sobre separação de camadas. Volto a repetir. O melhor exemplo disso é o Swing.
Swing sozinho implementa MVC. O M(model) V(view) C(controller), todas as letrinhas estão implemetadas pelo Swing.
Mas swing não esta em uma camada? Então como MVC seria p/ separar camadas?
Poderia me responder?

[]´s




João Bier
Desenvolvedor Java
[Email]
rodrigoy
GUJ Ranger
[Avatar]

Membro desde: 18/04/2006 01:06:28
Mensagens: 758
Localização: São Paulo
Offline

Como já disse aqui e em vários artigos de revista, JAVA não implementa MVC as is. Nem JSF, nem JSP, nem Swing implementa...

MVC não é sobre camadas (acho que essa que disse aqui já tem uns 3 anos e rendeu um post do Shoes).

(desculpe, sem tempo para postar links)

Rodrigo Yoshima
www.ASPERCOM.com.br

Próximas Turmas:
São Paulo: Scrum 28/agosto | OOAD-UML 13/setembro

Débito Técnico Blog: blog.aspercom.com.br
[WWW]
asaudate
GUJ Master
[Avatar]

Membro desde: 01/09/2007 19:31:41
Mensagens: 1669
Localização: São Paulo
Offline

jgbt wrote:Bom,
vou tentar responder para que outros não cometam o mesmo erro.

MVC não é sobre separação de camadas. Volto a repetir. O melhor exemplo disso é o Swing.
Swing sozinho implementa MVC. O M(model) V(view) C(controller), todas as letrinhas estão implemetadas pelo Swing.
Mas swing não esta em uma camada? Então como MVC seria p/ separar camadas?
Poderia me responder?

[]´s


Well... parto do pressuposto que MVC em Java tem (generalizando, tá, Sheldon?), basicamente, o modelo JSE (Swing) e o JEE (JSP, Servlets e... outras coisinhas ) . Assim, num modelo JEE, vc tem "separação em camadas" porque são peças distintas ( JSP != Servlets != POJO ).

Aliás... levando ao pé da letra a teoria (e lançando ao ar a discussão), nunca ví um projeto que usasse MVC que fosse... bem, MVC! Isso porque, teoricamente, V tem que buscar seus dados em C, certo? Alguém já viu?

[]´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?

 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team