modelo vista controlador

10
Modelo Vista Controlador De Wikipedia, la enciclopedia libre Saltar a navegación, búsqueda Un diagrama sencillo que muestra la relación entre el modelo, la vista y el controlador.  Nota: las líneas sólidas indican una asociación directa, y las pu nteadas una indirecta (por ejemplo, patrón bserver !. Modelo Vista Controlador (MVC) es un patrón de arquitectura de so"t#are que separa los datos de una aplicación, la inter"a$ de usuario, y la lógica de control en tres componentes distintos. %l patrón &' se ve "recuentemente en aplicaciones  #eb, donde la vista es la p)gina *+& y el código que provee de datos din)micos a la  p)gina. %l modelo es el Sistema de -estión de ase de /atos  y la ógica de negocio, y el controlador es el responsable de recibir los eventos de entrada desde la vista. Contenido 0ocultar 1 2 *istoria 3 /escripción del patrón 4 5rame#or6s &' 7 8e"erencias Historia [editar] %l patrón "ue descrito por primera ve$ en 299 2  por +ry gve 8eens6aug, entonces trabajando en Smalltal6  en laboratorios de investigación de ;ero<. a implementación original est) descrita a "ondo en Programa ción de Aplicaciones en Smalltalk-80(TM): Como utilizar Modelo ista Controlador . 3 Descripción del patrón [editar] Modelo: %sta es la representación especí"ica de la in"ormación con la cual el sistema opera. a lógica de datos asegura la integridad de estos y permite derivar nuevos datos= por ejemplo, no permitiendo comparar un número de unidades negativo, calculando si >oy es el cumplea?os del usuario o los totales, impuestos o importes en un carrito de la compra.

Upload: edeher

Post on 07-Jan-2016

212 views

Category:

Documents


0 download

DESCRIPTION

modelo

TRANSCRIPT

Page 1: Modelo Vista Controlador

7/17/2019 Modelo Vista Controlador

http://slidepdf.com/reader/full/modelo-vista-controlador-568e2560786f8 1/10

Page 2: Modelo Vista Controlador

7/17/2019 Modelo Vista Controlador

http://slidepdf.com/reader/full/modelo-vista-controlador-568e2560786f8 2/10

• Vista: %ste presenta el modelo en un "ormato adecuado para interactuar,usualmente la inter"a$ de usuario.

• Controlador: %ste responde a eventos, usualmente acciones del usuario einvoca cambios en el modelo y probablemente en la vista.

&uc>os sistemas in"orm)ticos utili$an un Sistema de -estión de ase de /atos paragestionar los datos: en MVC corresponde al modelo. a unión entre capa de

 presentación y capa de negocio conocido en el paradigma de la @rogramación por capasrepresentaría la integración entre Vista y su correspondiente Controlador de eventos yacceso a datos, &' no pretende discriminar entre capa de negocio de capa de

 presentación pero si pretende separar la capa !isual gr"#ica de su correspondiente programación $ acceso a datos algo que mejora el desarrollo y mantenimiento de laista y el Controlador  en paralelo ya que ambos cumplen ciclos de vida muy distintosentre si.

Aunque se pueden encontrar di"erentes implementaciones de MVC, el "lujo que sigue el

control generalmente es el siguiente:

2. %l usuario interactúa con la inter"a$ de usuario de alguna "orma (por ejemplo, elusuario pulsa un botón, enlace, etc.!

3. %l controlador recibe (por parte de los objetos de la inter"a$Bvista! la noti"icaciónde la acción solicitada por el usuario. %l controlador gestiona el evento quellega, "recuentemente a travCs de un gestor de eventos (>andler! o callbac6.

4. %l controlador accede al modelo, actuali$)ndolo, posiblemente modi"ic)ndolo de"orma adecuada a la acción solicitada por el usuario (por ejemplo, el controladoractuali$a el carro de la compra del usuario!. os controladores complejos est)n amenudo estructurados usando un patrón de comando que encapsula las accionesy simpli"ica su e<tensión.

7. %l controlador delega a los objetos de la vista la tarea de desplegar la inter"a$ deusuario. a vista obtiene sus datos del modelo para generar la inter"a$ apropiada

 para el usuario donde se re"leja los cambios en el modelo (por ejemplo, produceun listado del contenido del carro de la compra!. %l modelo no debe tenerconocimiento directo sobre la vista. Sin embargo, el patrón de observador puedeser utili$ado para proveer cierta indirección entre el modelo y la vista,

 permitiendo al modelo noti"icar a los interesados de cualquier cambio. Un objetovista puede registrarse con el modelo y esperar a los cambios, pero aun así elmodelo en sí mismo sigue sin saber nada de la vista. %l controlador no pasa

objetos de dominio (el modelo! a la vista aunque puede dar la orden a la vista para que se actualice. %ota: &n algunas implementaciones la !ista no tiene

acceso directo al modelo' deando ue el controlador en!*e los datos del modelo

a la !ista+ D. a inter"a$ de usuario espera nuevas interacciones del usuario, comen$ando el

ciclo nuevamente.

Frameworks MVC [editar]

Len!a"e Licencia #ombre

Page 3: Modelo Vista Controlador

7/17/2019 Modelo Vista Controlador

http://slidepdf.com/reader/full/modelo-vista-controlador-568e2560786f8 3/10

8uby &E+ 8uby on 8ails

Fava GF3ee Apac>e Struts

Fava GF3ee

Apac>e ee>ive

Fava GF3ee

Apac>e Spring

Fava GF3ee

Apac>e +apestry

Fava GF3ee

Apac>e Aurora

Fava GF3ee

Apac>e FavaServer5aces

@erl -@ atalyst

@erl -@ -E::Application

@erl -@ -antry 5rame#or6 

@erl -@ Fi"ty

@erl -@ &aypole

Page 4: Modelo Vista Controlador

7/17/2019 Modelo Vista Controlador

http://slidepdf.com/reader/full/modelo-vista-controlador-568e2560786f8 4/10

@erl -@ penEnteract3

@erl omercial @ageHit

@erl -@ yclone 4

@erl % Solstice

@erl -@ -E::uilder 

@*@ -@ Sel" 5rame#or6 

@*@ -@ +lalo6es

@*@ -@ Agavi

@*@ S/ Iend 5rame#or6 

@*@ &E+ a6e@*@

@*@ -NUG-@ Humbia

@*@ &E+ Sym"ony

@*@ &E+ Jodo

@*@ -NUG-@ odeEgniter 

Page 5: Modelo Vista Controlador

7/17/2019 Modelo Vista Controlador

http://slidepdf.com/reader/full/modelo-vista-controlador-568e2560786f8 5/10

@*@ tra Ho>ana

@*@ &@ 2.2 @*@7%ore

@*@ S/ @8A/

@yt>on I@ Iope4

@yt>on 'arias +urbogears

@yt>on -@ Keb3py

@yt>on S/ /jango

.N%+ astle @roject &ono8ail

.N%+ Apac>e Spring .N%+

.N%+ Apac>e &averic6 .N%+

.N%+ &SB@ [email protected]%+ &'

.N%+&icroso"t @atterns L@ractices

User Enter"ace @rocess (UE@! Applicationloc6 

Page 6: Modelo Vista Controlador

7/17/2019 Modelo Vista Controlador

http://slidepdf.com/reader/full/modelo-vista-controlador-568e2560786f8 6/10

AS4 Adobe pen Source airngorm

$e%erencias [editar]

2. M +rygveG&'O.3. M *o# to use &odelB'ie#Bontroller (&'! 

btenido de P>ttp:GGes.#i6ipedia.orgG#i6iG&odeloQ'istaQontrolador Pategorías: @atrones de dise?o R Arquitectura de so"t#are

Vistas

• Artículo • /iscusión • &ditar • *istorial 

Herramientas personales

• @robar eta • $eistrarse'&ntrar 

!scar

Ir 

 Buscar 

#aeación

• @ortada • @ortal de la comunidad • Actualidad 

• ambios recientes • @)gina aleatoria • Ayuda • /onaciones 

*mprimir'e+portar

• rear un libro • /escargar como @/5 • 'ersión para imprimir 

Herramientas

Page 7: Modelo Vista Controlador

7/17/2019 Modelo Vista Controlador

http://slidepdf.com/reader/full/modelo-vista-controlador-568e2560786f8 7/10

• o que enla$a aquí • ambios en enla$adas • Subir arc>ivo • @)ginas especiales • %nlace permanente • itar este artículo 

&n otros idiomas

• TVWXYZ[ • atal\ • ]es6y • /eutsc> • %nglis> • %speranto • ^_`  • Suomi • 5ranais • fh • &agyar  • Etaliano •   日本語 •   한국어 • atvieu •  Nederlands •  Nors6 (bo6ml! • @ols6i • @ortuguks • 8omn • YYZ[ • Svens6a •   தமழ •   ไทย • +r6e • ZXWYZW • +ing 'iwt •   中文

 

• %sta p)gina "ue modi"icada por última ve$ el x4:D9, 3x oct 3xx9.• %l te<to

 Nuevo

Page 8: Modelo Vista Controlador

7/17/2019 Modelo Vista Controlador

http://slidepdf.com/reader/full/modelo-vista-controlador-568e2560786f8 8/10

Patrón "Modelo-Vista-Controlador"

Descripción

Para el diseño de aplicaciones con sofisticados interfaces se utiliza el patrón de diseño Modelo-Vista-Controlador. La lógica de un interfaz de usuario cambia con más frecuencia ue losalmacenes de datos ! la lógica de negocio. "i realizamos un diseño ofuscado# es decir# unpastic$e ue mezcle los componentes de interfaz ! de negocio# entonces la consecuencia seráue# cuando necesitemos cambiar el interfaz# tendremos ue modificar traba%osamente loscomponentes de negocio. Ma!or traba%o ! más riesgo de error.

"e trata de realizar un diseño ue desacople la &ista del modelo# con la finalidad de me%orar lareusabilidad. 'e esta forma las modificaciones en las &istas impactan en menor medida en lalógica de negocio o de datos.

(lementos del patrón)

• Modelo) datos ! reglas de negocio

• Vista) muestra la información del modelo al usuario

• Controlador) gestiona las entradas del usuario

*n modelo puede tener di&ersas &istas# cada una con su correspondiente controlador. *ne%emplo clásico es el de la información de una base de datos# ue se puede presentar dedi&ersas formas) diagrama de tarta# de barras# tabular# etc. Veamos cada componente)

+. (l modelo es el responsable de)o  ,cceder a la capa de almacenamiento de datos. Lo ideal es ue el modelo sea

independiente del sistema de almacenamiento.o 'efine las reglas de negocio la funcionalidad del sistema. *n e%emplo de

regla puede ser) /"i la mercanc0a pedida no está en el almac1n# consultar eltiempo de entrega estándar del pro&eedor/.

o Lle&a un registro de las &istas ! controladores del sistema.

o "i estamos ante un modelo acti&o# notificará a las &istas los cambios ue en los

datos pueda producir un agente e2terno por e%emplo# un fic$ero bat$ ueactualiza los datos# un temporizador ue desencadena una inserción# etc.

3. (l controlador  es responsable de)o 4ecibe los e&entos de entrada un clic# un cambio en un campo de te2to# etc..

o Contiene reglas de gestión de e&entos# del tipo /"I (&ento 5# entonces ,cción6/. (stas acciones pueden suponer peticiones al modelo o a las &istas. *na de

Page 9: Modelo Vista Controlador

7/17/2019 Modelo Vista Controlador

http://slidepdf.com/reader/full/modelo-vista-controlador-568e2560786f8 9/10

estas peticiones a las &istas puede ser una llamada al m1todo /,ctualizar/.*na petición al modelo puede ser/7btener8tiempo8de8entrega nue&a8orden8de8&enta /.

9. Las vistas son responsables de)o 4ecibir datos del modelo ! los muestra al usuario.

o :ienen un registro de su controlador asociado normalmente porue además lo

instancia.o Pueden dar el ser&icio de /,ctualización/# para ue sea in&ocado por el

controlador o por el modelo cuando es un modelo acti&o ue informa de loscambios en los datos producidos por otros agentes.

*n e%emplo de MVC con un modelo pasi&o auel ue no notifica cambios en los datos es lana&egación ;eb# ue responde a las entradas del usuario# pero no detecta los cambios endatos del ser&idor.

(l diagrama de secuencia)

Pasos)

+. (l usuario introduce el e&ento.3. (l Controlador recibe el e&ento ! lo traduce en una petición al Modelo aunue tambi1n

puede llamar directamente a la &ista.9. (l modelo si es necesario llama a la &ista para su actualización.<. Para cumplir con la actualización la Vista puede solicitar datos al Modelo.=. (l Controlador recibe el control.

Bien# pero esto >cómo se implementa? (2iste una peueña dificultad) la ma!or parte de las

$erramientas de desarrollo incorporan en las clases de la &ista gran parte o todo elprocesamiento de e&entos. Con lo ue el controlador ueda semioculto dentro de la &ista. ,pesar de ello# podemos acercarnos bastante al patrón. (n el siguiente e%emplo en @a&a# elob%eto &ista es un ,pplet ,6:. (l controlador controlador.%a&a puede gestionar el clic en unbotón# de tal forma ue recoge datos por medio del Modelo model.cargar8te2to.. ! losmanda a la Vista el applet para su actualización &ista.mostrar8te2to )

/****************************************************************

Responde al click en botón "abrir"

La respuesta al evento es hacer que se abra en la vista

Page 10: Modelo Vista Controlador

7/17/2019 Modelo Vista Controlador

http://slidepdf.com/reader/full/modelo-vista-controlador-568e2560786f8 10/10

el archivo correspondiente a la referencia seleccionada en elcombo box

****************************************************************/

void b_abrir_actionPerformed(ction!vent e #

$$$

%trin& texto_archivo 'model$car&ar_texto( indice_ref // )btener texto de archivo

/*** %i la car&a de archivo es ok lo muestro$ %i no

aviso de error ****/

if (texto_archivo +' null #

vista$mostrar_texto(texto_archivo //,ostrar texto

vista$mostrar_aviso("-ar&a de " . path . "completada$"

else

vista$mostrar_aviso("!rror en la car&a de " .path

Vol&er al 0ndice