Conceitos e Frameworks
para Arquitetura MVC
Eduardo Martinelli Galvão de Queiroz
O que é MVC?
•MVCéasiglaparaModel-View-Controller(Modelo-Visão-Controlador)
•Padrãodearquiteturadesoftwarequeseparaaaplicaçãoemtrêscamadas:
Model Controller View
Modelo MVC
Model View Controller
Modelodeproduto:armazena
informaçõessobrenome,preçoe
descriçãonobancodedados;
Modelodeusuário:armazena
nome,e-mailesenha;
ModelodePedido:armazena
informaçõessobreprodutos,
quantidadeepreço
Páginadeproduto:exibe
informaçõessobrenome,preçoe
descrição
Páginadelogin:podepermitir
loginsdeusuários.
Páginadecarrinhodecompra:
exibiçãodosprodutosqueo
usuárioestácomprando.
Processarum formulário: recebe
os dados de um formulário e
armazena no modelo.
Exibição de página: chama função
na Visão (View) para gerar uma
página HTML
Modelo MVC -História
•Meados da década de 70 -Christopher Alexandercomeçou a criar os
primeiros padrões de documentação de projetos.
•TrygveReenskaug–XeroxPARC–em1979–“Applications
ProgramminginSmalltalk-80:HowtouseModel-View-Controller”,
comaseperaçãodosprojetoem3camadasindependentes(MVC).
Fluxo baseado em GUI (GraphicUserInterface)
Modelo MVC
•O Modelnunca se comunica diretamente com a View.
•O Controlleré o único componente que pode modificar o Modele a View.
Modelo MVC
Algumasvantagens:
•Ascamadaspodemsertestadasdeformaindependente;
•Manutenções precisam ser feitas apenas na camada necessária;
•O padrão pode ser utilizando para diversos portes de aplicações;
•Pode ser estendido para demandas específicas de um aplicativo;
•Reaproveitamento de código;
•Separação da lógica da apresentação
Modelo MVC
•Exemplo Aplicação Financeira
View Controller Model
Eventos (Pedido de cálculo) Pedido de cálculo ao Model
ResultadoVisualização
Diagrama de fluxo MVC
Por que usar a camada Controller?
SeriapossívelfazeracomunicaçãodiretaView-Model,masnãoérecomendável.Asduasinterfaces
(VieweModel)teriamquegerenciarainterfaceetrataralógicodacamadaModel.
•Aumento de acoplamento entre as duas camadas (aumento de dependência);
•A utilização do código da Viewcom outro Modelnão seria possível sem a necessidade de
modificação;
•Controllerdependência entre Viewe Modelsão reduzidas ao máximo.
Modelo MVC
•Sistemas poucos complexos, pode criar complexidade desnecessária;
•Necessário maior tempo e foco para a separação das camadas;
Porém:
Manutenções e atualizações futuras?
Frameworks MVC
•Estrutura de uma aplicação/trabalho;
•Parte do sistema já está codificada e testada apenas tratamento de
itens específicos é necessário;
•Maior rapidez e qualidade;
Frameworks MVC
•Exemplo da Calculadora Financeira
•Camada Model
Regras da aplicação, com o cálculo
de juros simples e composto
Frameworks MVC
•Camada Controller
Método executa() recebe valores
inseridos pelo usuário nos campos
de formulário e envia novamente os
resultados para View
Frameworks MVC
•Camada Controller
Realiza o tipo de cálculo
(simples ou composto) e formata
oresultado em 2 casas decimais.