Escolar Documentos
Profissional Documentos
Cultura Documentos
Usurio
Contexto
ocorre
Problema
resolve
Soluo
Recapitulando
Padro Camada
Problema
Soluo
Camada de
Negcio
Camada de
Dados
Exemplos de Padres
Arquiteturais
Padres POSA (Pattern Oriented Software Architecture)
Categoria: From Mud to Structure
J Vimos
Padres de
Interao com o Usurio
O objetivo promover duas separaes:
Separao Viso-Modelo
Boa Prtica de projeto de software!
Separa as classes que descrevem o modelo e a lgica de
negcios das classes que realizam a interface com o usurio,
permitindo que ambas evoluam de forma independente.
Apresentador
Vises
Dados
Anlise e Projeto OO com UML e Padres| 5
Camada
Apresentao
Camada
Negcio
Padro MVC
MVC: Model-View-Controller
MVC Original
Controller
View
Model
associao indireta
associao direta
Responsabilidades:
Variaes
Duas variaes do padro podem ser identificados mais
comumente:
Desacopladas
Model
Model
Sincronizao
com Observer
Anlise e Projeto OO com UML e Padres| 9
Variao
Modelo de Negcio e Apresentao
Em muitos casos necessria a criao de entidades na
camada de apresentao para representar entidades de
negcio
View
4
input
notificao
Presentation
Model
1
Controller
C. Apresentao
3
notificao
2
Business
Model
C. Negcio
Descrio:
1. O usurio faz requisies por dados
ou aes sobre os dados do modelo
ao Controller.
2. O Controller recebe as requisies
e repassa para o objeto apropriado
do B. Model para atend-la.
3. O B. Model faz as operaes sobre
os dados e retorna algum tipo de
informao ao Controller,que por
sua vez devolve informaes para
objetos na camada de
apresentao.
4. Atualizaes no P. Model so
avisadas ao View.
Variao MVP
Outros padres (como o MVP) foram criados para resolver as
insuficincias do MVC quando aplicado a algumas tecnologias
de interface grfica
Qual a diferena do MVP (Model-View-Presenter)?
Em algumas GUI:
Presenter
View
foco do
padro
Model
associao indireta
associao direta
Responsabilidades:
1
View
notificao
4
Presentation
Model
Presenter
C. Apresentao
3
notificao
Business
Model
C. Negcio
Descrio:
1. O usurio faz requisies por
dados ou aes sobre os dados do
modelo View.
2. O Presenter recebe as requisies
e repassa para o objeto
apropriado do B. Model para
atend-la.
3. O B. Model faz as operaes sobre
os dados e retorna algum tipo de
informao ao Presenter,que por
sua vez devolve informaes para
objetos na camada de
apresentao.
4. Atualizaes no P. Model so
avisadas ao View.
Discusso
MVC ou no MVC?
Atualmente, so classificados como padres MVC (ou variantes)
aqueles padres que obedecem seguinte condio:
Passive MVP
Supervising Presenter
De fato, segundo
Fowler, o supervising
presenter segue um
estilo de controller.
Passive MVP
Utilizado em diversas
aplicaes Web
Presenter
View
foco do
padro
Model
associao indireta
associao direta
Responsabilidades:
Interao
Descrio:
A View faz requisies por dados ou aes
sobre os dados do modelo.
2. O Presenter recebe as requisies e
repassa para o objeto apropriado do B.
Model para atend-la.
3. O B. Model faz as operaes sobre os
dados e retorna algum tipo de informao
ao Presenter,que por sua vez devolve
informaes para a View.
4. Objetos de modelo na camada de
apresentao (P. Model) podem ser
eventualmente utilizados para auxiliar a
comunicao entre Presenter e View
1.
P. Model 4
1
Presenter
2
Business
Model
C. Negcio
C. Apresentao
View
Supervising Presenter
foco do
padro
Utilizado em diversas
aplicaes GUI Desktop
Presenter
View
Model
associao indireta
associao direta
Responsabilidades:
Diagrama Sequencia
Supervising Presenter
:Main
inicializa
inicializa
:Model
:View
se cadastra
inicializa
Usuario
:Presenter
se cadastra
Observer
boto
Observer
notifica
atualiza'
modifica viso
processa
notifica
atualiza
Exerccio
Dado:
Arquitetura Cliente-Servidor
Cliente Web
(Browser)
Internet
Servidor Web
Cliente Web
A comunicao entre cliente e servidor na web feita
utilizando o protocolo HTTP.
Anlise e Projeto OO com UML e Padres| 22
Arquitetura Cliente-Servidor
Via get de uma URL
Cliente Web
Parametros:
- Get (explicitamente)
- Post (implicitamente)
pgina
HTML
Servidor Web
Cliente Web
Anlise e Projeto OO com UML e Padres| 23
Aplicaes Web
Caractersticas
Controller
View
foco do
padro
Model
associao indireta
associao direta
Responsabilidades:
MVC 2
A aplicao do padro MVC em Aplicaes
Corporativas (web) requer algumas mudanas
Diagrama Sequencia
MVC 2
Cliente
Servidor
:Front
Controller
Browser
:Fabrica
Helpers
:Model
Command
servio 1
obter(1)
:Helper1
comando
v2 :View
HttpResponse
servio 2
gera
processa
html
obter(2)
:Helper2
comando
processa
Exerccio
Dado:
Frameworks MVC
Existem Diversos frameworks que auxiliam o
desenvolvimento Web de acordo com o padro MVC
Os frameworks Java mais conhecidos so:
JSF
Struts
Spring MVC
Struts e JSF
Struts e JSF possuem diversas similaridades
No curso ...
Vamos usar o Play