0 Compartilhamentos 419 Views 2 Comments

Entendendo a arquitetura MVC de forma simples

24 de maio de 2014

Hoje trouxe um assunto que já foi mais que discutido na internet mas que ainda se mostra muito deficiente de conceituação, principalmente de exemplificação prática, o MVC.
Para quem ainda não conhece o MVC é a sigla para Model View Controller, que é um padrão de arquitetura de software amplamente utilizado na engenharia de software.

Basicamente essa arquitetura separa a representação da informação da interação do usuário. Não fique preocupado ainda, iremos tratar de forma bem simples como funciona, ou como deve funciona o Model, o View e o Controller. Pequisando na internet me deparei com muitos artigos legais e outros nem tanto. Acredito que todos devem procurar se aprofundar no assunto pequisando por material mais conceitual, porém acredito que a abordagem direta seja o primeiro passo para entender de forma clara estes padrões. Tomei como base um artigo muito bom escrito por Alexandre Gama.

Entendendo de forma simplificada o conceito por trás do MVC

Qual é a função do Model (M)?

Não tem mistério, quando pensamos em regras de negócio, estamos pensando em Model. Ok, simplificando é isso.
Tudo que estiver relacionado a acesso a banco e arquivos, validações em geral, cálculos e requisitos específicos do projeto devem ser representados pelo Model.

Exemplo:
Se um usuário adiciona um produto em um carrinho de compras em uma loja virtual, o Model será o responsável pelos cálculos de descontos, juros, frete, utilização de cupons, baixa no estoque e etc.
Aí você pergunta. OK mas para o usuário adicionar um produto no carrinho ou inserir o CEP para entrega é preciso que ele antes veja o produto, quem é que faz isso?
Sim, boa pergunta, a sua resposta é: Na View. Confira abaixo.

Qual é a função da View (V)?

Mostrar informações, isso é único objetivo da View. Não deveria ser utilizado para outra coisa mas na prática isso não acontece (mas deveria). Quem já desenvolveu com VB/Delphi já viu muitas vezes, não tenho dúvida disso, regras de negócio escritas em um botão. Para quem é desenvolvedor web PHP/ASP, por exemplo já viu, essa eu também não tenho dúvida, regras escritas diretamente com o código e em muitas vezes misturado ao HTML. ARG! Confesso que até hoje vejo código assim e que ainda precisa de manutenção. – Very bad!!!

Para os exemplos acima a manutenção e também o pleno entendimento para se chegar ao atendimento dos requisitos são muito mais complicados.
Agora você me pergunta: Como a View faz para passar os valores (e se comunicar) com o Model, basta passá-los diretamente? Não, quem faz isso é o nosso maestro, o Controller. Veja abaixo.

Qual é a função do Controller (C)?

Como o próprio nome diz ela é o controle, o maestro, ele é quem faz as coisas acontecerem. Uma dúvida muito comum que surge é se as regras de negócio podem ser colocadas também no Controller, e resposta é bem curta, Não! Outra dúvida é se no controller há visuzalização de informações, bom se você chegou até aqui é melhor reler, pois a resposta também é Não!

O papel do Controller na arquitetura também é simples, delegar para o Model as solicitações da View. O Controller nunca deve ser utilizado para regras de negócios e muito menos para visualização de informações. Ele é o resposável tão somente pela comunicação de quem está pedindo algo e para quem enviará a resposta.

Resumindo
O Controller se comunica com a View e também com o Model, Já o Model nunca se comunica com a View mas por sua vez a View observa o Model que avisa quando as solicitações foram atendidas para que a View possa mostrá-las.

Ficou complicado de entender? Então acompanhe abaixo na imagem como se dá este relacionamento entre eles.

Arquitetura MVC

Para não restar dúvida de que o MVC é uma ótima arquitetura para desenvolvimento de software, veja abaixo as suas principais vantagens:

  • Reaproveitamento de código e regras;
  • Facilidade de manutenção;
  • Integração de equipes e/ou divisão de tarefas;
  • Camada de persistência independente;
  • Facilidade na implementação de camadas de segurança;
  • Facilidade na atualização da interface da aplicação.

Espero que você tenha compreendido o conceito básico da arquitetura. Nos próximos artigos sobre o assunto, abordarei na prática e com muitos exemplos como é feita a implementação com MVC.

Carregando...

Você pode se interessar

Promoções de Jogos do Final de Semana (03/07)
Notícias
9 visualizações
Notícias
9 visualizações

Promoções de Jogos do Final de Semana (03/07)

Carlos L. A. da Silva - 3 de julho de 2020

Confira as melhores ofertas de jogos de PC para o final de semana.

Como plugar um dispositivo USB corretamente… de primeira!
Dicas
12 visualizações
Dicas
12 visualizações

Como plugar um dispositivo USB corretamente… de primeira!

Carlos L. A. da Silva - 3 de julho de 2020

Impossível? Feitiçaria? A resposta estava bem diante de nossos olhos todo esse tempo...

Microsoft está mapeando o planeta inteiro para simulador de voo
Artigos
17 visualizações
Artigos
17 visualizações

Microsoft está mapeando o planeta inteiro para simulador de voo

Carlos L. A. da Silva - 1 de julho de 2020

A franquia Flight Simulator está prestes a renascer com um nível de realismo jamais alcançado antes.

2 Responses

Deixe um Comentário

Your email address will not be published.

Mais publicações

Promoções de Jogos do Final de Semana (26/06)
Notícias
19 visualizações
19 visualizações

Promoções de Jogos do Final de Semana (26/06)

Carlos L. A. da Silva - 26 de junho de 2020
Os 10 melhores plugins de formulário para WordPress em 2020
Artigos
21 visualizações
21 visualizações

Os 10 melhores plugins de formulário para WordPress em 2020

Carlos L. A. da Silva - 26 de junho de 2020
Você precisa conhecer Deno
Artigos
24 visualizações
24 visualizações

Você precisa conhecer Deno

Carlos L. A. da Silva - 20 de junho de 2020
Promoções de Jogos do Final de Semana (19/06)
Notícias
24 visualizações
24 visualizações

Promoções de Jogos do Final de Semana (19/06)

Carlos L. A. da Silva - 19 de junho de 2020