Conceitos e Frameworks para Arquitetura MVC.pdf

Eduardo87960 18 views 19 slides Feb 03, 2025
Slide 1
Slide 1 of 19
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19

About This Presentation

COnceitos em MVC


Slide Content

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
•Modelo(Model):tratatodososdados,lógicaeregrasdoaplicativo.Pode
fazeracessoadados,manipulaçãoeoseuenvioparaacamadaView
(Visão);
•Visão(View):representagraficamenteosdados,ouseja,apresenta
visualmenteaousuárioasinformações.Nãohálógicadenegócios,apenas
apresentação
•Controlador(Controller):intermediárioentreacamadaModeloeVisão.
Recebeasentradasdousuárioeexecutaosprocedimentosapropriados
utilizandoascamadasModeloeVisão.

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
•Controller-entradasdemouseetecladosãointerpretadasparacomandos,
quesãoenviadosparaacamadaModele/ouViewparamodificações.
•Model–respondesobreseuestado,trataasregrasdoaplicativoemodela
aresoluçãodoproblema.
•View–Fazagerênciadodisplay,apresentandoinformaçõesemformade
gráficosetextos.Tudoquefazérecebercomandosdocontrollere
informaçõesdeModeleexibi-las.
Model Controller View

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 de Calculadora Financeira
•Usuárioinserevaloresparacálculosdejuros(simples,composto)e
entãopedeocálculo.Umevento,geradopelobotãodepedidode
cálculo,égerado,pelainterfacegráfica(View).
•EsteeventogeraumpedidoparaqueoControllergerencieosdados
doformulárioeenvieparacálculo.EntãoenviaparaoModel,que
contemasregrasdecálculo.
•OModelrealizaocálculoeentãoretornaoresultadoparao
Controller,queenviaparaoView,paravisualizaçãodousuário.Caso
sejanecessáriaregistraaoperaçãoemumbancodedados,seráfeito
peloModel.

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;
•Controllerdependê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
Alguns Frameworks
•Django(Python)
•Laravel(PHP)
•CodeIgniter(PHP)
•Spring Boot(Java)
•ASP.NET Core(C#)
•Node.js(JavaScript)

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.

Frameworks MVC
•CamadaView
Camposparaentradadedados,
seletordotipodecálculoebotão
pararealizaroprocedimento.
Verificamosapenasumaligação
comoController(IController),ou
seja,acamadanãotemnehum
conhecimentosobreaaplicação,
foraoController.

Frameworks MVC
View
CalculoForm()
Controller
CalculoControll
er()
executa (simples
ou composto)
Model
Calculo
jurosSimples()
Calculo
jurosCompostos()
executa()
Resultado
(juros e montante)
Resultado

Referências
•Gamma,E.;Helm,R.;Johnson,R.;Vlissides,J.DesignPatterns-ElementsofReusable
ObjectOrientedSoftware.Reading-MA,AddisonWesley,1995.
•Normando,Célio,ArquiteturaMVCeprincípiosdeprojeto,Disponívelem:
https://www.devmedia.com.br/padrao-mvc-java-magazine/21995
•DevMedia, Higor, Introduçãoao Padrão MVC, Disponívelem
https://medium.com/@celionormando/arquitetura-mvc-e-princ%C3%ADpios-de-projeto-
3d0b278ef910
•DevMedia,Marcio,PadrãoMVC –JavaMagazine,Disponívelem
https://www.devmedia.com.br/padrao-mvc-java-magazine/21995
Tags