Padrões MVC, MVP e MVVM para Arquitetura de Software
1. Curso: Tecnologia em Análise e Desenvolvimento de
Sistemas
Disciplina: Arquitetura de Software
Prof. Msc. Petrônio Cândido Lima e Silva
Dupla: Aline Ferreira e Aricelio de Souza
Turma: 5º Período
3. Padrão MVC
• Em 1979 Trygve Reenskaug sugeriu o
padrão TMVE ( Thing–Model–View–Editor),
predecessor do atual MVC,em razão da
impossibilidade, de reutilização de código,
na época.
4. Padrão MVC
o Thing (Coisa): algo de interesse do
usuário;
o Model: define a representação de uma
abstração na forma de dados
o View: representações visuais de um dado
Modelo
o Editor : Interface entre o usuário e a view;
5. Padrão MVC
• No mesmo ano propôs uma evolução do seu
até então padrão MVCE (Model- View-
Controller-Editor), onde:
• Model: é definido como um objeto que
representa o conhecimento;
6. Padrão MVC
• View: é a representação visual de uma
Model;
• Controller: conexão entre o usuário e o
sistema;
• Editor: Controller que permite ao usuário
alterar informações apresentadas na
view;
7. Padrão MVC
• Está ideia foi posteriormente implementada
por Jim Althoff, com algumas modificações,
sendo o atual padrão MVC ;
8. Padrão MVC
• A arquitetura MVC (Model-View-Controller),
consiste na divisão de uma aplicação em
três camadas físicas, separando a
informação de sua apresentação.
9. Padrão MVC
View
(Apresentação)
● Camada de interface com usuário;
● Inclui os elementos de exibição no cliente : HTML, XML,
ASP, Applets.
Model (Lógica
de Aplicação)
● Modela os dados e o comportamento por atrás do processo
de negócios;
● Responsável pela manipulação de dados;
Controller
(Controle)
● Intermediaria entre a camada de apresentação e a lógica;
● Controla e mapeia as ações;
26. Padrão MVP
• O MVP foi visto a primeira vez na IBM, e
posteriormente na Taligent, onde era
utilizado para o desenvolvimento de
aplicações em C++, tendo posteriormente
migrado para JAVA.
27. Padrão MVP
• Em 1997 Andy Bower e Blair McGlashan da
Dolphin Smalltalk adaptaram o padrão MVP
para formar a base para seu framework de
interface de usuário.
• Em 2006 foi inserido pela Microsoft na
documentação do .NET framework.
28. Padrão MVP
• O padrão MVP (Model-View-Presenter) ,
possui como objetivo, separar a camada de
apresentação das camadas de dados e
regras de negócio.
30. Padrão MVP
View ● Interface com o usuário;
● implementa uma interface que expõe os campos e
eventos que o Presenter necessita;
Model ● São os objetos que serão manipulados;
● Um objeto Model implementa uma interface que expõe
os campos que o Presenter irá atualizar quando sofrer
alguma alteração na View.
Presenter ● É a ligação entre a Model e a view;
● Ele é encarregado de atualizar a View quando o Model é
alterado e de sincronizar o Model em relação ao View.
31. Padrão MVP
• O MVP diferencia- se do MVC no conceito,
pois as funções do Presenter são
semelhantes a do Controller.
• A manutenção do sistema é muito mais
simples, já que, as responsabilidades estão
divididas em classes distintas.
52. Padrão MVVM
• O MVVM (Model-View-ViewModel) é um
padrão criado em 2005 por John Gossman,
um dos arquitetos do WPF e Silverlight na
Microsoft.
• Este padrão é identico ao MVP e é
específico para a arquitetura do WPF e
Silverligh.
53. Padrão MVVM
• Também é uma especialização do padrão
PM (Presentation-Model), introduzido por
Martin Fowler em 2004.
55. Padrão MVVM
Model ● Representa o conceito do negócio;
View
● Controle gráfico responsável pela apresentação de dados ao
usuário;
● Uma view pode ser uma janela WPF, uma página do
Silverlight, ou apenas um modelo de controle de dados
XAML.
View-
Model
● Contém a lógica de interface com o usuário, os comandos, os
eventos e uma referência ao modelo;
● A atualização de dados na interface é feita por um
componente fornecido pelo WPF e Silverligh;
56. Padrão MVVM
• A comunicação entre as camadas view e
view- model é feita por um mecanismo
denominado binding;
58. Padrão MVVM
• A utilização da arquitetura MVVM requer a
divisão, do código da aplicação em
diferentes blocos denominados camadas;
• Código mais flexível, e fácil de testar;