Diversos
Arquitetura MVC de forma simples
Neste artigo iremos abordar um assunto conhecido pela maioria dos desenvolvedores, mas que ainda se mostra muito deficiente de conceito, principalmente de exemplificação prática, o MVC.
O que é MVC?
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.
Acredito que todos devem procurar se aprofundar no assunto pesquisando por material mais conceitual, porém acredito que a abordagem direta seja o primeiro passo para entender de forma objetiva estes padrões.
Qual é a função do Model (M)?
Simplificando, quando pensamos em regras de negócio, estamos pensando em Model. É nela onde tudo que estiver relacionado a acesso a banco, arquivos, validações em geral, cálculos e requisitos específicos do projeto, devem ser representados.
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ê me pergunta (rsrsrs)?
Certo, 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 não é assim que acontece. Quem já desenvolveu com VB/Delphi já viu muitas vezes, regras de negócio escritas em um botão, “bem mais fácil né”!!!
Para quem é desenvolvedor web PHP/ASP, por exemplo, já viu regras escritas diretamente com o código e em muitas vezes misturado ao HTML. Na verdade muitos ainda fazem desta forma.
Entendo que, quando iniciamos o aprendizado na FALCULDADE, deveríamos aprender da forma correta, desde o início. Desta forma, todos iriam se acostumar com a forma correta de iniciar um projeto. Mas todos nós sabemos que não é desta forma que acontece.
Começamos pelo simples “Hello World”, nos aprofundamos cada vez mais e depois vem à matéria odiada por muitos (talvez por esse motivo) a ESTRUTURA DE DADOS, PADRÃO DE PROJETOS e afins. Quando iniciamos nestas matérias, no início para uns e sempre para outros, sentimos muita dificuldade, pois temos que aprender a “andar novamente”.
Mas deixe isso pra lá, pois foge completamente da nossa alçada e vejamos 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.
Vejamos:
Qual é a função do Controller (C)?
Como o próprio nome diz, ele é o controle, o maestro, é “ele” quem faz as coisas acontecerem. Coloquei ele entre aspas, pois ele (processador/máquina) não faz nada se não tiver nada. Às vezes escuto as pessoas dizerem – “Nossa como essa máquina é inteligente, faz tudo certinho e muito rápido”. Dá uma vontade... mas não fazem ideia do sofrimento do ser humano (nós desenvolvedores) para tal, mas deixa pra lá...
Uma dúvida muito comum que surge, é se as regras de negócio podem ser colocadas também no Controller, e a resposta é bem curta - Não!
Outra dúvida muito comum é se no controller há visuzalização de informações. Bem se você chegou até aqui é melhor dar um loop e começar a ler o artigo desde o início novamente, 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 responsável tão somente pela comunicação de quem está pedindo algo e para quem enviará a resposta, ele deve ser usado somente para delegar as funções.
Ele sabe quem faz, mas não precisa saber fazer e muito menos conhecer os procedimentos envolvidos!
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 ela observa o Model, que avisa quando as solicitações foram atendidas para que a View possa mostrá-las.
Ainda está confuso? Então acompanhe abaixo na imagem como se dá este relacionamento entre eles.
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 exemplos como é feita a implementação com MVC.
Dúvidas, críticas ou sugestões comentem abaixo e bons estudos. =)
Gigasystems Login:
Informe seu e-mail abaixo para continuar!
XVeja Também:
Artigos Relacionados a categoria: Diversos
Criando uma máquina virtual com VMware Player
01 December de 2014
Como colocar senha no WampServer
24 November de 2014
Como colocar acentuação em alerts javascript
12 November de 2014
Como definir o tempo de atraso em Javascript
04 November de 2014
Olá, deixe seu comentário para Arquitetura MVC de forma simples