Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida sobre MVC

Bom, eu tenho uma dúvida meio torta. Eu não consigo entender direito qual é a grande sacada do MVC. Sei que ele separa em módulos tudo que se está produzindo e foi implementado pelo Smalltalk. Mas, ainda assim, quero saber se eu estou certo, por que tá muito estranho na minha cabeça

M = Model - Ele é a base de dados, é ele quem recebe uma "requisição" do controller e seleciona o que vai tirar da base de dados pra dar pro controller

V = View - É o que o usuário enxerga. Tudo que é exibido ou interativo é a View. Exemplo: banners, dropdowns, inputs

C = Controller - Ele é a interface que captura as solicitações do usuário e manda pro Model pra receber os dados e devolver pra View. Exemplo: Listeners de eventos.

É isso mesmo ou eu to pulando parte?

Eu não sei se é por ser simples parece fugir alguma coisa ou se por ser complicado eu tento simplificar

2 respostas
solução!

Allan, essa sua dúvida é bastante comum e sempre gera dúvidas e debates nos fóruns de Java.

Como as aplicações estão ficando cada vez mais complexas, é interessante criar separações nas aplicações, de modo que os programadores possam alterar determinados blocos de código (seja por mudança na política da empresa, morte da tecnologia, adaptação para novas tecnologias ou qualquer outra razão) sem que seja necessário mexer em toda a aplicação.

Se você já programou em PHP, deve saber a salada que alguns programadores fazem, muitas vezes acessando banco de dados (Model) diretamente da tela (View), fazendo renderizar ou não determinados blocos de código (Controller) dependendo do retorno do banco.

O MVC não é "bala de prata", ele não resolve tudo, mas ele se mostra de fácil compreensão. Você pode perceber que se sua empresa mudar a tecnologia da camada de apresentação de JSP para JSF, por exemplo, você não precisa alterar toda a sua aplicação, em especial as camadas Model e Controller. Basta alterar a camada View. Essa separação ajuda bastante na hora desse tipo de alteração, bem como na compreensão do sistema.

Uma espécie de "diálogo" entre as camadas na requisição de uma página seria mais ou menos assim:

View: passa para o Controller os dados de login de uma página.

Controller: pega os dados de login e passa para a camada Model validar os dados.

Model: verifica se os dados passados pelo Controller estão cadastrados, corretos, etc., depois manda a resposta de volta para o Controller.

Controller: chama a camada View (informando qual página deve ser exibida) de acordo com a requisição do usuário.

View: renderiza a página após o login para o usuário.

Bom, essa foi uma explicação simples, espero que tenha ajudado a compreender um pouco mais. Se tiver alguma outra dúvida, só postar.

Abraço

Manoel, ajuda muito, o que eu tenho problema é que comecei a estudar agora o MVC e o conteúdo sobre isso é muito escasso. O pessoal esquece que a gente tem que entender como um modelo funciona pra , então, aplicar ele com consistência e coerência.

A salada que eu vi muito programmer PHP fazer, foi justamente por causa de não entender esse modelo e eu sou detalhista, gosto de tudo bem ajeitado e entendido. Muito obrigado por me ajudar!