MVC
Engenharia de Software II
Geyson Inácio de Souza Júnior
Hernani De Barros Vieira Júnior
Izabela Caldeira Borges
Rafael Câmara Magalhães
Thais Moraes Murici
O que é o MVC ?
Model
View
Controller
O padrão foi inventado por
para a computação pessoal, enquanto ele participou como cientista convidado no grupo de desenvolvimento da linguagem , no
.
Contudo, foi adaptada posteriormente como uma arquitetura para aplicações web, sendo utilizada hoje em conjunto com grandes linguagens e frameworks.
MVC
Trygve Reenskaug
Smalltalk
Xerox Palo
Alto Research Center
Inventado bem antes do primeiro browser.
Implementado pela primeira vez como parte da biblioteca de Smalltalk-80.
Originalmente chamado de “Thing Model View Editor”, mas renomeado para “Model View Controller”.
Representa conhecimento. Pode ser um objeto único ou uma estrutura de objetos.
Representação visual de um modelo. Originalmente, iria destacar alguns atributos em prol de outros, atuando como um “filtro de apresentação”.
Ponte entre o usuário e o sistema. Coordena como as views serão exibidas e recebe informações e comandos do usuário, traduzindo-as para o sistema.
Model:
Views:
Controller:
Conceito MVC original
Por que MVC??
Porque é um verdadeiro padrão de projeto
( ) e torna fácil a manutenção da sua aplicação, com pacotes modulares de rápido desenvolvimento.
Elaborar tarefas divididas entre models, views e controllers faz com que sua aplicação fique leve e independente. Novas funcionalidades são facilmente adicionadas e pode-se dar nova cara nas características antigas num piscar de olhos.
Design Pattern
Por que MVC??
O design modular e separado também permite aos desenvolvedores e designers trabalharem simultaneamente, incluindo a habilidade de se construir rapidamente um protótipo.
A separação também permite que os desenvolvedores alterem uma parte da aplicação sem afetar outras.
Metas do MVC
Por exemplo: desenvolvimento back-end sem necessidade do UI pronto e implementação e design do front-end sem necessidade da estrutura de dados pronta.
A mesma view (ou similar) para um aplicativo pode ser refatorada para outro aplicativo com dados diferentes, porque a view é simplesmente o modo como os dados estão sendo exibidos para o usuário.
Desenvolvimento simultâneo
Reuso de código
Conceito MVC para web
Vantagens
- Desenvolvimento simultâneo - Múltiplos desenvolvedores podem trabalhar simultaneamente no modelo, no controlador e nas visualizações.
- Facilidade de modificação - Por causa da separação de responsabilidades, o desenvolvimento ou modificação futura é mais fácil
- Várias visualizações para um modelo - Modelos podem ter várias visualizações
Vantagens
- Alta coesão - MVC permite o agrupamento lógico de ações relacionadas em um controlador em conjunto. As visualizações para um modelo específico também são agrupadas.
- Baixo acoplamento - A própria natureza da estrutura MVC é tal que existe baixo acoplamento entre modelos, visualizações ou controladores
- Redução da complexidade do código, facilidade de manutenção e de documentação
- Maior escalabilidade
Desvantagens
- Navegabilidade do código - A navegação do framework pode ser complexa porque introduz novas camadas de abstração e exige que os usuários se adaptem aos critérios de decomposição do MVC.
- Consistência multi-artefato - A descomposição de um recurso em três artefatos causa dispersão. Assim, exigindo que os desenvolvedores mantenham a consistência de múltiplas representações ao mesmo tempo.
Desvantagens
- Curva de aprendizagem pronunciada - O conhecimento sobre múltiplas tecnologias torna-se a norma. Os desenvolvedores que usam MVC precisam ser especializados em várias tecnologias.
- Em sistemas de baixa complexidade, o MVC pode criar uma complexidade desnecessária
- Requer mais tempo para modelagem
Dúvidas???
Contato
GEYSON INÁCIO DE SOUZA JÚNIOR
geyson.junior@sga.pucminas.br
HERNANI DE BARROS VIEIRA JUNIOR
hernani.vieira@sga.pucminas.br
IZABELA CALDEIRA BORGES
izabela.borges@sga.pucminas.br
RAFAEL CÂMARA MAGALHÃES
rcmagalhaes@sga.pucminas.br
THAIS MORAES MURICI
thais.murici@sga.pucminas.br
MVC Design Pattern
By Izabela Borges
MVC Design Pattern
This is a presentation on the MVC Design Pattern.
- 444