Logo-apuntesuned

mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterHoy774
mod_vvisit_counterAyer697

Fecha: 17 Dic de 2017

Patrón Modelo Vista Controlador

Es un patrón de diseño de software utilizado para implementar sistemas donde se requiere el uso de interfaces de usuario.

Surge de la necesidad de crear software más robusto con un ciclo de vida más adecuado.

Se potencia la facilidad de mantenimiento, reutilización del código y la separación de conceptos.

Su fundamento es la separación del código en tres capas diferentes, acotadas por su responsabilidad:

  • Modelo.
  • Vista.
  • Controlador.

Modelo

Programaremos lo relativo a los datos y su encapsulación.

Contiene la lógica de la aplicación.

Es la lógica de negocios.

Son las clases y métodos que se comunican directamente con la base de datos.

Contendrá mecanismos para acceder a la información y también para actualizar su estado.

Los datos los tendremos habitualmente en una base de datos.

En el modelo tendremos todas las funciones que accederán a las tablas y harán los correspondientes SELECT, UPDATE, INSERT, DELETE.

Vista

Programaremos lo relativo a la interfaz gráfica.

Muestra la información al usuario e interactúa con él.

En la vista generalmente trabajamos con los datos.

Sin embargo, no se realiza un acceso directo a éstos.

Las vistas requerirán los datos a los modelos y ellas se generarán las salidas, tal como nuestra aplicación requiera.

Controlador

Es el intermediario entre la Vista y el Modelo.

Se encarga de controlar las interacciones del usuario en la vista.

Contiene el código necesario para responder a las acciones que se solicitan en la aplicación.

Si se solicita desarrollar un sistema de administración de usuarios con un CRUD (Create, Read, Update, Delete).

Pide los datos al modelo y los devuelve de nuevo a la vista para que ésta los muestre al usuario.

Es decir las llamadas a clases y métodos, y los datos recibidos de formularios.

La conexión entre la parte gráfica y los datos y los eventos que se producen cuando manejamos la aplicación.

Ciclo de vida del MVC

El usuario realiza una petición.

El controlador captura la petición.

Hace la llamada al modelo correspondiente.

El modelo será el encargado de interactuar con la base de datos y retorna la información al controlador.

El controlador recibe la información y la envía a la vista.

La vista procesa la información recibida y la entrega de una manera visualmente entendible al usuario.

Ventajas de MVC

La separación del Modelo y la Vista, lo cual logra separar los datos, de su representación visual.

Facilita el manejo de errores.

Permite que el sistema sea escalable si es requerido.

Es posible agregar múltiples representaciones de los datos.

Desventajas de MVC

La cantidad de archivos que se deben mantener incrementa considerablemente.

La curva de aprendizaje es más alta que utilizando otros modelos.

Su separación en capas, aumenta la complejidad del sistema.

Esquema del MVC

 

Ejercicios resueltos en Java utilizando el Modelo Vista Controlador

En el proyecto de la Comunidad autónoma, realizao un diseño con el Patrón Modelo Vista Controlador. Se compone de tres ComboBox que están relacionados y realizan las selecciones oportunas a medida que seleccionamos la Comunidad Autónoma, la Provincia y Municipios. Una vez realizada las tres selecciones del Combo se muestra la información en un JTeaxtArea.

Incluye una base de datos con tres tablas. Tenéis que crear una nueva base de datos y luego importar el fichero territorio3.sql. Ahí se encuentra toda la Base de Datos que alimenta el ComboBox.

En el proyecto de la versión 4, incluyo además un JTable que tiene como función mostrar las Provincias una vez seleccionada la Comunidad Autónoma.

En la versión MVC CRUD Academia 3, realizo un CRUD (Create, Read, Update, Delete).

Esta versión está diseñada con el Patrón Modelo Vista Controlador.

El motivo de utilizar un patrón de diseño, es que permite tener el código bien organizado, legible y mantenible, además permite reutilizar código y aumenta la escalabilidad en un proyecto.

La interfaz es textual.

El proyecto Incluye la base de datos "academia". Está realizado con NetBeans 8.2.

En la versión MVC CRUD Alumnos 1 CallableStatement, realizo un CRUD (Create, Read, Update, Delete).

Esta versión está diseñada con el Patrón Modelo Vista Controlador.

Aquí sólo gestiono a los alumnos.

La interfaz es Gráfica.

El proyecto Incluye la base de datos "academia". Está realizado con NetBeans 8.2.

En la versión MVC CRUD Alumnos 3 Statement, realizo un CRUD (Create, Read, Update, Delete).

Esta versión está diseñada con el Patrón Modelo Vista Controlador.

Aquí sólo gestiono a los alumnos.

La interfaz es Gráfica.

El proyecto Incluye la base de datos "academia". Está realizado con NetBeans 8.2.

En la versión MVC CRUD Alumnos 5 Profesores, realizo un CRUD (Create, Read, Update, Delete).

Esta versión está diseñada con el Patrón Modelo Vista Controlador.

Aquí se ve la gestión de alumnos y profesores.

La interfaz es Gráfica.

El proyecto Incluye la base de datos "academia". Está realizado con NetBeans 8.2.