Mvc

27 respostas
J

Alguém tem um exemplo básico implementado seguindo o MVC só para eu ver empiricamente como a coisa é?

27 Respostas

G

Olha manu vamos ver se eu consigo ser claro

É assim creio eu q a base deve ser a mesma, só fui aprender MVC estudado Ruby on Rails mais vamos lá !

M ? Model é o banco de dados onde guarda todas as informações

V ? View o HTML da vida como vai ser mostrado tudo (basicamente)

C - Controller é como se fosse um celebro e onde ele toma todas as decisões onde esta a logica, no Java seria “Servelet”

Olha se vc quiser um livro bom q vai ti dar o básico de MVC de uma forma bem fácil o livro q a prendi MVC foi o Use a Cabeça Rails, muito bom só escorrega um pouco na tradução, o livro e sobre o framework Rails

Espero ter ajudado

G

Dá uma olhada nesse link…
http://pt.wikipedia.org/wiki/MVC

J

Certo…Eu meio que entendi a teoria…
Mas queria ver se existe algum projeto Java de exemplo em que eu possa ver os pacotes e as classes dividindo esse modelo…

P

Acho que você quer aprender é Layers (Camadas) não é?
MVC está presente na Camada de Apresentação.

Mas se você quer é modelar a Arquitetura MVC, aí recomendo este link: http://www.guj.com.br/posts/list/129277.java

Espero ter ajudado! :wink:

C

Er, nao. O ‘V’ de MVC é a camada de apresentacao.

P

Er, nao. O ‘V’ de MVC é a camada de apresentacao.

Obrigado cv pelo alerta, era uma dúvida que tinha já fazia um tempão! Obrigadão mesmo. :smiley:

P

Er, nao. O ‘V’ de MVC é a camada de apresentacao.

Nope, MVC != Camadas

http://www.fragmental.com.br/wiki/index.php/MVC_e_Camadas

R

http://jmmwrite.blogspot.com/2009/10/criando-um-projeto-mvc-simples-para.html

Uma pequena implementação do padrão/pattern/conceito MVC.

S

Er, nao. O ‘V’ de MVC é a camada de apresentacao.

Não. MVC é um padrão que se aplica a uma unica camada. Logo, logicamente, nenhuma das letras se refere a uma camada.
MVC é normalmente aplicado na camada de apresentação ou na de cliente.

S

Giulio Augusto:
Olha manu vamos ver se eu consigo ser claro

É assim creio eu q a base deve ser a mesma, só fui aprender MVC estudado Ruby on Rails mais vamos lá !

M ? Model é o banco de dados onde guarda todas as informações

V ? View o HTML da vida como vai ser mostrado tudo (basicamente)

C - Controller é como se fosse um celebro e onde ele toma todas as decisões onde esta a logica, no Java seria “Servelet”

Olha se vc quiser um livro bom q vai ti dar o básico de MVC de uma forma bem fácil o livro q a prendi MVC foi o Use a Cabeça Rails, muito bom só escorrega um pouco na tradução, o livro e sobre o framework Rails

putz, se vc aprendeu isso com esse livro, jogue o livro fora, ou jogue o seu cerebro fora… :twisted:

De onde raios é que vcs tiraram que MVC são as iniciais de nomes de camadas ?!
Acaso os sistemas só podem ter 3 camadas ? E se tiverem 5 , 8 , quais seriam nomes ?

Pela ultima vez : Model View Controler não são os nomes de camadas !
Aceitem isso, estudem, e parem de dizer asneira!

No ultimo mês o Guj foi invadido por pessoas procurando sobre MVC e outras respondendo asneiras sobre MVC ?

Afinal qual é esse interesse todo com MVC ? E porque raios ninguem sabe o que MVC é e pior que isso, confunde com divisão em camadas ?

São Guijnho nos valha !

R

Er, nao. O ‘V’ de MVC é a camada de apresentacao.

Não. MVC é um padrão que se aplica a uma unica camada. Logo, logicamente, nenhuma das letras se refere a uma camada.
MVC é normalmente aplicado na camada de apresentação ou na de cliente.

Agora me deixou curioso, como assim:

“MVC é um padrão que se aplica a uma unica camada”

No link que o pcalcado passou, http://www.fragmental.com.br/wiki/index.php/MVC_e_Camadas

O padrão não está aplicado às 3 camadas?

S

Er, nao. O ‘V’ de MVC é a camada de apresentacao.

Não. MVC é um padrão que se aplica a uma unica camada. Logo, logicamente, nenhuma das letras se refere a uma camada.
MVC é normalmente aplicado na camada de apresentação ou na de cliente.

Agora me deixou curioso, como assim:

“MVC é um padrão que se aplica a uma unica camada”

No link que o pcalcado passou, http://www.fragmental.com.br/wiki/index.php/MVC_e_Camadas

O padrão não está aplicado às 3 camadas?

3 camadas sim, mas não MVC.

P

Vamos lá: Se estou entendendo direito, MVC se aplica a apresentação. :idea:

Ou seja, vamos definir que dentre várias camadas que tem o nosso sistema (1,2,3,…20mil) uma delas é denominada “apresentação”.

Dentro da apresentação existe um pacote com classes PessoaModel, VeículoModel e DocumentoModel;

Também dentro da apresentação existe um pacote com uma classe LicenciamentoView;

Há também dentro dessa apresentação um pacote com classes PessoaControl, VeiculoControl e DocumentoControl.

Então existe uma interação entre componentes na “apresentação” utilizando MVC, ou seja o objeto LicenciamentoView gera eventos a(os) objetos(s) do(s) controle(s) e é Listener do(s) objeto(s) do Modelo(s). O controle altera (chamando métodos) o(s) modelo(s) e seleciona a visão a ser mostrada.

Até aí, tudo bem? :roll:
Fico no aguardo pelas respostas, valew! :smiley:
E pessoal não se irritem por favor não percam a paciência é um assunto que muita gente precisa conhecer, até mesmo para acabar essas questões que há anos as pessoas se enchem de dúvidas! :frowning:

W

pedromuyala:
Vamos lá: Se estou entendendo direito, MVC se aplica a apresentação. :idea:

Ou seja, vamos definir que dentre várias camadas que tem o nosso sistema (1,2,3,…20mil) uma delas é denominada “apresentação”.

Dentro da apresentação existe um pacote com classes PessoaModel, VeículoModel e DocumentoModel;

Também dentro da apresentação existe um pacote com uma classe LicenciamentoView;

Há também dentro dessa apresentação um pacote com classes PessoaControl, VeiculoControl e DocumentoControl.

Então existe uma interação entre componentes na “apresentação” utilizando MVC, ou seja o objeto LicenciamentoView gera eventos a(os) objetos(s) do(s) controle(s) e é Listener do(s) objeto(s) do Modelo(s). O controle altera (chamando métodos) o(s) modelo(s) e seleciona a visão a ser mostrada.

Até aí, tudo bem? :roll:
Fico no aguardo pelas respostas, valew! :smiley:
E pessoal não se irritem por favor não percam a paciência é um assunto que muita gente precisa conhecer, até mesmo para acabar essas questões que há anos as pessoas se enchem de dúvidas! :(

Normalmente o que você quer apresentar na tela são as informações de outras camadas, como a de domínio. Nesse caso, o model estaria contido em outras camadas (domínio, persistência…). Só notar que em várias aplicações não há um mecanismo onde o Model notifica a View. O controller que acaba alterando o model e despachando as solicitações para objetos que representem a View.

O controller invocaria essas camadas onde, possivelmente, estão as informações a serem representadas. Muitas vezes o controller acessa um repositório ou um serviço. Repare que estes não fazem parte da camada de apresentação.

Logo, esse teu PessoaModel nem sempre condiz com a realidade. Mas não adianta, isso muda de implementação pra implementação. Depende do que vc está fazendo.

Falou.

F

Parece que ninguem leu o link do pcalcado :shock:

Sempre procurei este tipo de “visão” da coisa, mas nunca achei, muito bom.

M

O padrão MVC possibilita dividir a responsabilidade das demais partes de sua aplicação, o que facilita o desenvolvimento de forma a isolar cada parte da aplicação em camadas. Não confunda camadas do padrão MVC com camadas de redes modelo ISO/TCP, as camadas MVC são níveis lógicos, já as camadas ISO/TCP são físicas (hardware).
Para cada uma das camadas do padrão MVC temos diferentes soluções, como por exemplo, para a camada View utilizamos o JSF, para a camada de modelo a JPA/ Hibernate e para a camada de controle podemos utilizar servlets, struts, etc.

P

rubensdemelo:
http://jmmwrite.blogspot.com/2009/10/criando-um-projeto-mvc-simples-para.html

Uma pequena implementação do padrão/pattern/conceito MVC.

Oi Rubens estava olhando a implementação mas achei ela bem diferente da realidade quando se diz o padrão MVC Desktop!
Não consigo enxergar nessa codificação o MVC especificado pela SUN conforme a imagem abaixo:

Será que mais alguém pode opinar se estou certo ou estou ploriferando o efeito “asneiras” que nem comentou o Serginho? :oops:
Valew gujeiros pela participação. :wink:

W

De fato o que foi postado não é MVC.

pedromuyala, porque vc não estuda frameworks MVC? Os padrões nem sempre aparecem exatamente como estão descritos, mas no caso do MVC é até fácil perceber as implementações diferentes. Os frameworks normalmente documentam o que é feito.

Falou.

P

OI Wagner, com certeza preciso estudar os diversos Frameworks existentes.
Como você mesmo falou muitas vezes a implementação criada por eles não refletem 100% a especificação.

MVC é um padrão de arquitetura que deveria ser de comum conhecimento entre todos.
Mas infelizmente esse padrão ainda continua “despadronizado”. Pode ver, cada implementação que pegar será diferente uma da outra em conceitos que deveriam ser características em todos os sistemas independentemente do que ele está fazendo.

Uns usam Observer, outros fazem “ponte do controle”… Uns chamam métodos diretamente no controle, outros passam eventos. Uns validam na visão, outros nas regras de negócios e outros nos dois. Entendeu o Milkshake? :lol:

Lógico desenvolvem assim porque atende a necessidade e funciona bem da forma implementada mas é só trocar uma pessoa que está acostumada com Struts por uma que usa Mentawai e pronto tá feita a bagunça!

Valew Wagner estar acompanhando, por favor continue conosco! Um abraço.

W

pedromuyala:
OI Wagner, com certeza preciso estudar os diversos Frameworks existentes.
Como você mesmo falou muitas vezes a implementação criada por eles não refletem 100% a especificação.

MVC é um padrão de arquitetura que deveria ser de comum conhecimento entre todos.
Mas infelizmente esse padrão ainda continua “despadronizado”. Pode ver, cada implementação que pegar será diferente uma da outra em conceitos que deveriam ser características em todos os sistemas independentemente do que ele está fazendo.

Uns usam Observer, outros fazem “ponte do controle”… Uns chamam métodos diretamente no controle, outros passam eventos. Uns validam na visão, outros nas regras de negócios e outros nos dois. Entendeu o Milkshake? :lol:

Lógico desenvolvem assim porque atende a necessidade e funciona bem da forma implementada mas é só trocar uma pessoa que está acostumada com Struts por uma que usa Mentawai e pronto tá feita a bagunça!

Valew Wagner estar acompanhando, por favor continue conosco! Um abraço.

Eu acho que o importante é entender o conceito e o objetivo num primeiro momento. Não é tão complexo assim, o diagrama já diz quase tudo a respeito do padrão. Detalhes de implementação são específicos a cada sistema. Mas tem coisas que não podem, por exemplo, validação dos objetos de domínio na view é estranho. Se a tua view muda, os objetos precisam continuar consistentes, concorda? O objetivo é justamente permitir mudar a view sem mexer no model. Se você começa a validar os dados na view não tá trabalhando pra este objetivo.

Se você procurar, tem um tópico aqui no GUJ onde o peerless e o Sérgio Taborda estavam discutindo sobre isso. Lá tinham trechos de código sem framework nem nada, apenas esboços. É um tópico bem antigo, se eu achar edito e coloco aqui.

Falou.

#editado
Tá aqui: http://www.guj.com.br/posts/list/73765.java

S

Marcio_Nogueira:
O padrão MVC possibilita dividir a responsabilidade das demais partes de sua aplicação, o que facilita o desenvolvimento de forma a isolar cada parte da aplicação em camadas.

Não! MVC não serve para isso. não serve para dividir responsabilidade entre partes da aplicação! nem serve para facilitar separação em camadas!

Raios, porque vcs não entendem isso ? Ou melhor, mesmo que não entendam, porque continuam repetindo o errado?!

N

sergiotaborda:
Marcio_Nogueira:
O padrão MVC possibilita dividir a responsabilidade das demais partes de sua aplicação, o que facilita o desenvolvimento de forma a isolar cada parte da aplicação em camadas.

Não! MVC não serve para isso. não serve para dividir responsabilidade entre partes da aplicação! nem serve para facilitar separação em camadas!

Raios, porque vcs não entendem isso ? Ou melhor, mesmo que não entendam, porque continuam repetindo o errado?!

Pode explicar então para que ele serve?

Valeu!

Abraço

S

Frango:
sergiotaborda:
Marcio_Nogueira:
O padrão MVC possibilita dividir a responsabilidade das demais partes de sua aplicação, o que facilita o desenvolvimento de forma a isolar cada parte da aplicação em camadas.

Não! MVC não serve para isso. não serve para dividir responsabilidade entre partes da aplicação! nem serve para facilitar separação em camadas!

Raios, porque vcs não entendem isso ? Ou melhor, mesmo que não entendam, porque continuam repetindo o errado?!

Pode explicar então para que ele serve?

Já expliquei. Procure pelos topicos de falam de MVC.
Procure no google “sergiotaborda mvc” …

Vamos lá gente! menos preguiça…

N

sergiotaborda:
Frango:
sergiotaborda:
Marcio_Nogueira:
O padrão MVC possibilita dividir a responsabilidade das demais partes de sua aplicação, o que facilita o desenvolvimento de forma a isolar cada parte da aplicação em camadas.

Não! MVC não serve para isso. não serve para dividir responsabilidade entre partes da aplicação! nem serve para facilitar separação em camadas!

Raios, porque vcs não entendem isso ? Ou melhor, mesmo que não entendam, porque continuam repetindo o errado?!

Pode explicar então para que ele serve?

Já expliquei. Procure pelos topicos de falam de MVC.
Procure no google “sergiotaborda mvc” …

Vamos lá gente! menos preguiça…

Perguntei para você aqui porque assim as pessoas que estão acompanhando a Thread também poderiam ver a resposta, mas de qualquer maneira vou pesquisar sim.

Ps: Bem legal o seu Post “Scrumalicious”

J

Se o autor da thread e os demais conseguiram entender ou pesquisaram melhor os fundamentos de MVC está blz.

E pedromuyala , puxa gostei desse fluxograma, com que ferramenta será que foi feito? Sempre tem algum melhor que o meu =(

[]s

P

A.L:
Se o autor da thread e os demais conseguiram entender ou pesquisaram melhor os fundamentos de MVC está blz.

E pedromuyala , puxa gostei desse fluxograma, com que ferramenta será que foi feito? Sempre tem algum melhor que o meu =(

[]s

Olá A.L., desculpa mas esta resposta fico lhe devendo. Achei esse fluxograma já pronto na net.
Um abraço! Obrigado por participar! :smiley:

P

Olá todos os usuários que participam do tópico criado pelo Jokabeludoido.
Parabéns pela iniciação. :smiley:

Bem, para mim está muito claro neste momento que MVC pode ser aplicado na “camada de apresentação” e “cliente” como afirma o Taborda.

Então antes de continuar lendo a próxima pergunta, coloque isso dentro da sua cabeça: :arrow: [size=15]MVC não é Camadas! Camadas é uma coisa, MVC é outra coisa.[/size] Ok? :idea:

Pronto tendo isso na mente (pode até incomodar inicialmente e ser difícil de acreditar pelo grande número de pessoas que misturam ambas :() vamos falar sobre MVC.

E para começar, vamos pelo básico (não me xinguem por favor): Qual a função da Visão, Controle e Modelo no MVC? O que cada uma tem de especial e como elas interagem?

Obrigado a todos que mantém a calma e tranquilidade para tratar um assunto delicado. :smiley:
Agradeço aos criadores do GUJ, seus moderadores e aos usuários que proporcionam essa qualidade do fórum unindo mentes do Brasil inteiro. :wink:

Criado 15 de outubro de 2009
Ultima resposta 21 de out. de 2009
Respostas 27
Participantes 13