Está en la página 1de 12

Instituto Tecnológico Superior de Misantla

Ingeniería en Sistemas Computacionales

Materia:
Desarrollo de Aplicaciones Móviles

Actividad:
Tarea 06
Realiza una investigación acerca de analizar las
características, ventajas y desventajas de los
patrones de diseño (MVC, MVP, MVVM).

Presenta:
Jennifer Pamela Barradas Castellanos

Profesor:
MSC. Irahan Otoniel José Guzmán

Misantla, Ver. 04 de septiembre del 2020

i
Índice de contenido

Contenido
Patrones de diseño ............................................................................................................................. 2
MVC ............................................................................................................................................... 2
Características ............................................................................................................................. 3
Ventajas y desventajas ................................................................................................................ 3
MVP................................................................................................................................................ 4
Características ............................................................................................................................. 4
Ventajas y desventajas ................................................................................................................ 5
MVVM ........................................................................................................................................... 5
Características ............................................................................................................................. 7
Ventajas y desventajas ................................................................................................................ 7
Bibliografías ....................................................................................................................................... 9
Bibliografía .......................................................................................................................................... 9

ii
Índice de figuras
Figura 1, Capitulo 2, Modelo vista controlador .................................................................................. 2
Figura 2, Capitulo 2, Modelo vista presentador .................................................................................. 4
Figura 3, Capitulo 2, Modelo vista vista modelo ................................................................................ 6

iii
Introducción

El objetivo principal del siguiente documento es mostrar las características, las ventajas y
desventajas de los patrones de diseño, (MVC, MVP, MVVM), esto para conocer las
diferencias entre cada uno de ellos. Se agregarán imágenes para una mejor comprensión del
tema.

Un patrón de diseño resulta ser una solución a un problema que se presenta en la Capa de
Presentación, es decir, brinda una solución ya probada y documentada a problemas de
desarrollo de software referentes a las interfaces de usuario.
Un desarrollador se ve obligado a utilizar código ya escrito y modificarlo las veces que sea
necesario, empieza a pensar la manera de realizar código de manera que al trasladar a otro
sitio sea más fácil utilizarlo.

Los patrones de diseño son soluciones a problemas con el diseño de la Capa de Presentación
y hacen que éste sea más flexible, elegante y reutilizable.

1
Patrones de diseño

“Los patrones de diseño son la base para la búsqueda de soluciones a problemas comunes en
el desarrollo de software y otros ámbitos referentes al diseño de interfaces de usuario”. Un
patrón de diseño resulta ser una solución a un problema que se presenta en la Capa de
Presentación, es decir, brinda una solución ya probada y documentada a problemas de
desarrollo de software referentes a las interfaces de usuario.

MVC
El MVC es el patrón más usado en la ingeniería del software. Este patrón nos separa el
modelos de datos, el modelo de la capa de presentación (vista) y de la parte de control.
• Modelo: es el encargado de representar los datos de la aplicación y la lógica para recuperar
y persistir datos.
• Vista: es la parte encargada de la parte visual de nuestra aplicación.
• Controlador: es el responsable de controlar la interacción del usuario y luego actualizar el
modelo o la vista
Es por esta razón que es necesario el estudio comparativo entre los dos patrones más
importantes hoy en día, para poder comprender cuál será la arquitectura más apta para el
desarrollo de aplicaciones de software profesional.

Figura 1, Capitulo 2, Modelo vista controlador

2
Características

Separación de tareas de aplicación (lógica de entrada, lógica de negocios y lógica de interfaz


de usuario), capacidad de prueba desarrollo controlado por pruebas (TDD) de forma
predeterminada. Todos los contratos principales del marco de MVC se basan en interfaz y se
pueden probar mediante objetos ficticios, que son objetos simulados que imitan el
comportamiento de objetos reales en la aplicación.
Un marco extensible y conectable. Los componentes del marco de ASP.NET MVC están
diseñados para que se puedan reemplazar o personalizar con facilidad. Puede conectar su
propio motor de vista, directiva de enrutamiento de URL, serialización de parámetros de
método y acción, y otros componentes.
Un potente componente de asignación de URL que le permite crear aplicaciones que tienen
direcciones URL comprensibles y en las que se pueden buscar.

Ventajas y desventajas

El patrón MVC proporciona una forma excelente de hacer que un elemento sea flexible y
adaptable a distintas situaciones. Esta flexibilidad puede ser aprovechada ya sea de manera
estática o dinámica. Estática cuando se agregan nuevas clases de vistas o controladores, y
dinámica cuando los objetos de vista o controlador se escogen en tiempo de ejecución.

Usualmente, el mayor desafío del MVC consiste en determinar la base; es decir, definir
interfaces adecuadas para que interactúen modelo, vistas y controlador. A menudo, como en
la mayor parte del software, un elemento MVC se desarrolla para satisfacer un conjunto
específico de necesidades. Es por esto que se necesita visión y un análisis cuidadoso para
implementar el elemento de forma que no se impongan restricciones específicas a una
aplicación sobre él.

(Bermeo, 2014)

3
MVP
En MVP, el presentador contiene la lógica de negocios de la interfaz de usuario para la vista.
Todas las invocaciones de View delegan directamente a Presenter. El presentador también
está desacoplado directamente de la vista y habla con él a través de una interfaz. Esto es para
permitir burlarse de la Vista en una prueba unitaria. Un atributo común de MVP es que tiene
que haber un gran despacho bidireccional. Por ejemplo, cuando alguien hace clic en el botón
“Guardar”, el controlador de eventos delega en el método “OnSave” del presentador. Una
vez que se completa el guardado, el presentador volverá a llamar a la vista a través de su
interfaz para que la vista pueda mostrar que se ha completado el guardado.
MVP tiende a ser un patrón muy natural para lograr una presentación separada en Web
Forms. La razón es que la Vista siempre se crea primero por el tiempo de ejecución de
ASP.NET. Puede encontrar más información sobre ambas variantes.

Figura 2, Capitulo 2, Modelo vista presentador

Características
 La vista no conoce el modelo.
 El presentador es independiente de la tecnología de interfaz de usuario.
 La visita y el presentador son testeables puesto que está basada en un contrato.

4
Ventajas y desventajas
Ventajas:
 Vista desacoplada del resto de componentes
 Lógica de presentación testeable de forma unitaria
 Vistas y presenters reusables
Desventajas:

 Acoplamiento bidireccional. Esto es, el presenter conoce a la vista y la vista al


presenter. Además, el presenter tiene dependencias con los servicios.
 Al existir este acoplamiento, para testear el presenter tenemos que mockear los
servicios y la vista.
 Un presenter tiene dependencias con N servicios, lo que nos complica el testing del
mismo ya que cada servicio que añadamos implica más mocking en los tests.
 Existe tendencia a almacenar estados intermedios en el presenter (por ejemplo, el
estado de un formulario), lo que nos lleva a dificultades a la hora de testear este
presenter ya que hemos de configurar estos estados para cubrir todos los posibles
casos.
(Morales, s.f.)

MVVM
Modelo Vista Vista Modelo (MVVM). Es un patrón arquitectónico usado en la ingeniería de
software de Microsoft que se originó como una especialización del patrón de presentación de
diseño modelo introducido por Martin Fowler.

5
Figura 3, Capitulo 2, Modelo vista vista modelo

 En gran parte basado en el patrón Modelo Vista Controlador (MVC), MVVM está
dirigido amodernas plataformas de desarrollo de interfaz de usuario que soportan
programación orientada a eventos, como HTML5, Windows Presentation Foundation
WPF, Silverlight y el Framework ZK.
 Model: El modelo, dentro de MVVM es el encargado de representar el modelo del
negocio, proveyendo de esta manera la base necesaria para la manipulación de los
datos de la aplicación, además parte del modelo se lo puede usar como clases POCO
(Plain Old CLR Objects) para poder usarlas con Entity Framework Code First o algún
otro ORM. Cabe resaltar que, en el modelo, no debería de existir ninguna lógica de
negocio o código que afecte a como se visualizan sus datos en pantalla.
 View: La vista es la parte encargada de la parte visual de nuestra aplicación, no
teniéndose que ocupar en ningún momento en el manejo de datos. En MVVM la vista
tiene un rol activo, esto significa que en algún momento la vista recibirá o manejará
algún evento (Clic en un botón, alguna tecla presionada, etc.) y tendrá que
comunicarse con el modelo, para poder cumplir el requerimiento.
 ViewModel: El ViewModel (modelo de vista en español) es el encargado de ser la
capa intermedia entre el modelo y la vista, procesando todas las peticiones que tenga
la vista hacia el modelo, además de tener que ocuparse de manejar las reglas del
negocio, la comunicación con aplicaciones externas o consumir datos desde alguna
fuente (Bases de Datos, Web Services, Sensores, etc.).

6
Características
 Código más limpio y organizado.
 Mayor claridad y mejor comprensión del proyecto frente a otros
desarrolladores.
 Reutilización de código
 Mantenimiento más rápido

Ventajas y desventajas
Ventajas

 Separación entre interfaz, lógica de negocio y de presentación.


 Rapidez para crear distintas representaciones de los mismos datos.
 Facilidad para la realización de pruebas unitarias de los componentes.
 Reutilización de los componentes.
 Simplicidad en el mantenimiento de los sistemas.
 Curva de aprendizaje corta.
Desventajas
 Adaptarse a una estructura predefinida, lo cual puede incrementar la complejidad del
sistema.
 La curva de aprendizaje para los nuevos desarrolladores se estima mayor que la de
modelos más simples como Webforms.
 La distribución de componentes obliga a crear y mantener un mayor número de
ficheros.
(Vargas, 2015)

7
Conclusión

En conclusión, en este documento se explicaron los 3 patrones de diseño para el desarrollo


móvil los cuales fueron (Modelo vista controlador, modelo vista presentador, modelo vista
vista modelo).
El objetivo de esta investigación fue exponer las características así también como las ventajas
y desventajas, de tal manera que podamos saber en qué momento usar uno u otro.
Este documento fue breve, pero con información valiosa para el aprendizaje básico del
desarrollo de aplicaciones móviles y los patrones de diseño.

Finalmente, para dar por concluido este documento, se aclara que es de gran importancia los
conocimientos que el lector pueda absorber en este documento debido a que es necesario
académica y laboralmente obtener dicha información.

8
Bibliografías

Bibliografía

Bermeo, J. A. (2014). Obtenido de


http://dspace.espoch.edu.ec/bitstream/123456789/3559/1/18T00567.pdf

Morales, R. S. (s.f.). Obtenido de http://oa.upm.es/55363/1/TFG_RODRIGO_SOLIS_MORALES.pdf

Vargas, C. A. (Marzo de 2015). Obtenido de


https://dspace.ups.edu.ec/bitstream/123456789/10327/1/UPS-GT001236.pdf

También podría gustarte