Historia Del MVC
-
Upload
blackjack21 -
Category
Documents
-
view
226 -
download
0
Transcript of Historia Del MVC
-
7/24/2019 Historia Del MVC
1/47
Modelo-Vista-Controlador (MVC)
Edgardo Bermdez
Pedro Martnez
Vctor Gonzlez
-
7/24/2019 Historia Del MVC
2/47
Modelo-Vista-Controlador
Este patrn fe descrito por primera !ez por "r#g!e $eens%ag
en &'' # la implementacin original fe realizada en *malltal%
en los la+oratorios ,ero.
MVC se +asa en la separacin de la aplicacin en tres capas
principales/ Modelo Vista # Controlador.
*e sa (0l o algna de ss !ariantes) en la gran ma#ora de las
interfaces de sario.
-
7/24/2019 Historia Del MVC
3/47
Modelo-Vista-Controlador
Modelo/ es la representacin especfica del dominio de la
informacin so+re la cal fnciona la aplicacin.
El modelo es otra forma de llamar a la capa de dominio.
1a lgica de dominio a2ade significado a los datos3 por
e4emplo calclando si 5o# es el cmplea2os del sario o
los totales impestos o portes en n carrito de la compra.
-
7/24/2019 Historia Del MVC
4/47
Modelo-Vista-Controlador
Vista/ *e presenta el modelo en n formato adecado para
interactar salmente n elemento de interfaz de sario.
Controlador/ Este responde a e!entos salmente
acciones del sario e in!oca cam+ios en el modelo #
pro+a+lemente en la !ista.
-
7/24/2019 Historia Del MVC
5/47
Modelo-Vista-Controlador
En general
-
7/24/2019 Historia Del MVC
6/47
Modelo-Vista-Controlador
Mc5as aplicaciones tilizan n mecanismo dealmacenamiento persistente (como pede ser na +ase dedatos) para almacenar los datos. MVC no mencionaespecficamente esta capa de acceso a datos por6espone 6e est encapslada por el modelo.
El o+4eti!o primordial del MVC es la retilizacin del cdigo#a implementado.
Esta tarea se facilita mc5o si a la 5ora de programartenemos la precacin de separar el cdigo en !ariaspartes 6e sean sscepti+les de ser retilizadas sinmodificaciones.
-
7/24/2019 Historia Del MVC
7/47
Modelo-Vista-Controlador
E4emplos
1os datos de na 5o4a de clclo peden mostrarse de enformato ta+lar con n grfico de +arras con no desectores.
1os datos son el modelo. *i cam+ia el modelo las !istas de+eran actalizarse en
consonancia.
El sario manipla el modelo a tra!0s de las !istas.7 (en realidad a tra!0s de los controladores)
-
7/24/2019 Historia Del MVC
8/47
Modelo-Vista-Controlador
Mas de una Vista de un Modelode Datos
-
7/24/2019 Historia Del MVC
9/47
Modelo-Vista-Controlador
MVC es tilizado con ma#or frecencia en lasaplicaciones 8e+ donde la Vista es la pgina9"M1 # el Controlador es el cdigo 6e rene la
data dinmica # genera el contenido de la pgina.
El Modelo es representado por el contenido actal6e salmente se encentra almacenado en na
+ase de datos o en arc5i!os ,M1.
-
7/24/2019 Historia Del MVC
10/47
Modelo-Vista-Controlador
-
7/24/2019 Historia Del MVC
11/47
Modelo-Vista-Controlador
Fortalezas 7 *e presenta la misma informacin de distintas formas.
7 1as !istas # comportamiento de na aplicacin de+en refle4ar
las maniplaciones de los datos de forma inmediata.
7 :e+era ser fcil cam+iar la interfaz de sario (inclso en
tiempo de e4eccin).
7 Permitir diferentes estndares de interfaz de sario o portarla
a otros entornos no de+era afectar al cdigo de la aplicacin.
-
7/24/2019 Historia Del MVC
12/47
Modelo-Vista-Controlador
En ;M1*e propone para el desarrollo del
Modelo de
-
7/24/2019 Historia Del MVC
13/47
Modelo-Vista-Controlador
Variante inicial del Patrn MVC.
Variantes del Modelo.
- Variante en la cal no eiste ningna comnicacin entre elModelo # la Vista # esta ltima reci+e los datos a mostrar a
tra!0s del Controlador.
-
7/24/2019 Historia Del MVC
14/47
Modelo-Vista-Controlador
Variante en la cal se
desarrolla na
comnicacin entre el
Modelo # la Vista donde
esta ltima al mostrar losdatos los +sca
directamente en el
Modelo dada na
indicacin del
Controladordismin#endo el con4nto
de responsa+ilidades de
este ltimo.
Variante =ntermedia del Patrn MVC.
-
7/24/2019 Historia Del MVC
15/47
Modelo-Vista-Controlador
Mc5as interfaces grficas de sario como *8ing o M?C
5acen innecesario el so de n controlador.
7 :efinen s propio fl4o de control # mane4an los e!entos
internamente.
7 =ntegran as la !ista # el controlador.
7 < esta !ariante se la sele denominar Document-View
-
7/24/2019 Historia Del MVC
16/47
Modelo-Vista-Controlador
;n controlador (controlador.4a!a por e4emplo) pede gestionar el clic en n +otn detal forma 6e recoge datos por medio del Modelo (model.cargar@teto(..)) # losmanda a la Vista (el applet) para s actalizacin (!ista.mostrar@teto( ))/
A
$esponde al clic% en +otn a+rir 1a respesta al e!ento es 5acer 6e se a+ra en la !ista
el arc5i!o correspondiente a la referencia seleccionada en el com+o +oA
!oid +@a+rir@actionPerformed(+tener teto de arc5i!o
A *i la carga de arc5i!o es o% lo mestro. *i no a!iso de error A
if (teto@arc5i!o F nll) D
vista.mostrar@teto(teto@arc5i!o)3 AA Mostrar teto
vista.mostrar@a!iso(Carga de H pat5 H completada.)3I
else
vista.mostrar@a!iso(Error en la carga de H pat5)3
I
-
7/24/2019 Historia Del MVC
17/47
P$>,J
-
7/24/2019 Historia Del MVC
18/47
Pro#
Propsito
Proporciona n sstitto de otro o+4eto con el
fin de controlar s acceso.
Moti!acin
$azn para controlar el acceso a n o+4eto/
:iferir el coste de s creacin e inicializacin5asta 6e el o+4eto realmente se necesite.
-
7/24/2019 Historia Del MVC
19/47
Pro#
E4emplo
Editor de docmentos 6e permite o+4etos
grficos a+rir n docmento de+era ser
rpido realmente no todos los o+4etos son
!isi+les a la !ez
*olcinCrear los o+4etos K+a4o demandaL
-
7/24/2019 Historia Del MVC
20/47
Pro#
*olcin
;sar n o+4eto 6e sstit#a a la imagen real
(P$>,J). El pro# acta como si fese la imagen # la instancia
cando es necesario.
-
7/24/2019 Historia Del MVC
21/47
Pro#
*olcin
1a imagen est gardada en arc5i!osseparados # el Pro# garda el nom+re
del arc5i!o como la referencia al o+4eto
real. El Pro# tam+i0n garda el tama2o.
-
7/24/2019 Historia Del MVC
22/47
Pro#
-
7/24/2019 Historia Del MVC
23/47
Pro#
El editor de docmento accede a la imagen a
tra!0s de la interfaz definida por la clase
a+stracta Grap5ic
=magePro# es na clase para las imgenes6e es creada por demanda contiene el
nom+re del arc5i!o como na referencia a la
imagen en el disco
El nom+re del arc5i!o es pasado como
argmento al constrctor de =magePro# .
-
7/24/2019 Historia Del MVC
24/47
Pro#
=magePro# tam+i0n garda el tama2o de laimagen # na referencia a la instancia real.Esta referencia no ser !alida 5asta 6e elPro# instancie la imagen real.
1a operacin :ra8 se asegra 6e la imagenesta instanciada antes de responder lasolicitd.
GetEtent reen!a la solicitd a la imagen
solo si #a fe instanciada de lo contrario=magePro# de!el!e el tama2o 6e tienegardado.
-
7/24/2019 Historia Del MVC
25/47
Pro#
-
7/24/2019 Historia Del MVC
26/47
Pro#
Pro# de proteccin
Controla el acceso al o+4eto original. Es til si el o+4eto
original tiene diferentes derec5os de acceso.
$eferencia elegante (smart pointers)
$ealiza acciones adicionales cando se acceden a los
elementos referenciados
-
7/24/2019 Historia Del MVC
27/47
Pro#
Estrctra
-
7/24/2019 Historia Del MVC
28/47
Pro#
:iagrama de *ecencia
-
7/24/2019 Historia Del MVC
29/47
Pro#
Participantes
Pro#
Mantiene n referencia al o+4eto real
Mantiene n mismo interfaz 6e el o+4eto
real
Mantiene el acceso al o+4eto realCodificacin de peticiones Cac5ing de
informacin compro+ar permisos
-
7/24/2019 Historia Del MVC
30/47
Pro#
Participantes
*+4ect
:efine el interfaz comn a Pro# #
$eal*+4ect
$eal*+4ect:efine el o+4eto real 6e representa el Pro#
-
7/24/2019 Historia Del MVC
31/47
Pro#
Consecencias
El pro# introdce n ni!el de indireccin
cando accede a n o+4eto. 1a indireccin
tiene mc5os sos dependiendo del tipo de
pro#/
$emoto/ ocltar espacio de memoria.
Virtal/ optimizaciones creando o+4etos +a4odemanda
Proteccin/ tareas adicionales.
-
7/24/2019 Historia Del MVC
32/47
Pro#
$elacionados
*i ofrece n interfaz distinto (pro# de
segridad)
-
7/24/2019 Historia Del MVC
33/47
P$>,JAB$>E$
-
7/24/2019 Historia Del MVC
34/47
Pro#ABro%er
Propsito
Estrctrar sistemas distri+idos en los
cales srge la necesidad de na iteracin
remota entre componentes.
Moti!acin
:esacoplar la interaccin de los sarios en
los clientes # ser!idores.
-
7/24/2019 Historia Del MVC
35/47
Pro#ABro%er
E4emplo
En el desarrollo de n KMercado Ne+L
tenemos desarrollados dos agentes elcomprador # el !endedor. Pero estos estn
desarrollados en plataformas diferentes 6e
no permite 6e tengan comnicacin.
-
7/24/2019 Historia Del MVC
36/47
Pro#ABro%er
*olcin
Cando n cliente necesita comprar n
prodcto solicita a tra!0s de n Pro# alagente Bro%er los !endedores 6e tieneregistrado. El Bro%er se comnica por nPro# con el ser!idor para lle!ar a ca+o la
peticin.
-
7/24/2019 Historia Del MVC
37/47
Pro#ABro%er
*olcin
El agente Bro%er entrega la informacin
necesaria a el pro#-cliente # al pro#-
ser!idor para 6e estos esta+lezcan na
comnicacin efecti!a 6e permita realizar
la operacin.
-
7/24/2019 Historia Del MVC
38/47
Pro#ABro%er
1os +ro%er permiten realizar coneiones
entre clientes # ser!idores de diferentes
plataformas.
1e entregan la informacin necesaria a los
Pro# para 6e estos realicen las
coneiones.
-
7/24/2019 Historia Del MVC
39/47
Pro#ABro%er
>tro e4emplo
El +ro%er sir!e de intermediario
entre el comprador # el!endedor.
Permitiendo 6e logren
conectarse # realizar la
transaccin.
-
7/24/2019 Historia Del MVC
40/47
Pro#ABro%er
1os patrones Pro#ABro%er se peden
implementar de diferentes maneras esto
depende de los re6erimientos de los
sistemas.
;na ?orma de implementarlos es permitiendo
6e los Pro# cliente # ser!idor se comni6en
entre ellos cando es posi+le.
-
7/24/2019 Historia Del MVC
41/47
Pro#ABro%er
-
7/24/2019 Historia Del MVC
42/47
Pro#ABro%er
:iagrama de *ecencia
-
7/24/2019 Historia Del MVC
43/47
Pro#ABro%er
>tra manera m# sada es no permitir 6e los
Pro# cliente # ser!idor se comni6en.
Esta restriccin podra ser necesaria por polticas de
segridad de los ser!idores.
"am+i0n por mantener n orden # control de todo lo
6e pasa por los Pro#s.
-
7/24/2019 Historia Del MVC
44/47
Pro#ABro%er
-
7/24/2019 Historia Del MVC
45/47
Pro#ABro%er
-
7/24/2019 Historia Del MVC
46/47
Pro#ABro%er
Consecencias
-
7/24/2019 Historia Del MVC
47/47
Pro#ABro%er
E4emplos
Este patrn es m# sado por sistemas con
estndar COR!(1E O.
Norld Nide Ne+