¿Que son los patrones?
Los patrones de software son soluciones reutilizables a los problemas que ocurren durante el desarrollo de un sistema de software o aplicación. Estos proporcionan un proceso consistente o diseño que uno o más desarrolladores pueden utilizar para alcanzar sus objetivos. También proporciona una arquitectura uniforme que permite una fácil expansión, mantenimiento y modificación de una aplicación.
Los patrones usualmente se describen con la siguiente información:
Descripción del problema: Que permitirá el patrón y ejemplos de situaciones del mundo real.
Consideraciones: Que aspectos fueron considerados para que tomara forma esta solución.
Solución general: Una descripción básica de la solución en si misma.
Consecuencias: Cuales son los pros y contras de utilizar esta solución
Patrones relacionados: Otros patrones con uso similar que deben ser considerados como alternativa.
Tipos de Patrones
Existen diferentes tipos de patrones. Dependiendo del nivel conceptual de desarrollo donde se apliquen, se distinguen (de más abstractos a más concretos): patrones de análisis, patrones arquitectónicos, patrones de diseño y patrones de implementación o idioms.
Dependiendo del propósito funcional del patrón, se distinguen los siguientes tipos:
Fundamental: construye bloques de otros patrones.
Presentación: Estandariza la visualización de datos.
De creación: Creación condicional de objetos.
Integración: Comunicación con aplicaciones y sistemas y recursos externos.
De particionamiento: Organización y separación de la lógica compleja, conceptos y actores en múltiples clases.
Estructural: Separa presentación, estructuras de datos, lógica de negocio y procesamiento de eventos en bloques funcionales.
De comportamiento: Coordina/Organiza el estado de los objetos.
De concurrencia: Maneja el acceso concurrente de recursos.
El patrón Modelo-Vista-Controlador (MVC) es un ejemplo de patrón arquitectónico estructural.
Patrón MVC
Las aplicaciones Web pueden desarrollarse utilizando cualquier arquitectura posibles. La arquitectura del patrón Modelo-Vista-Controlador es un paradigma de programación bien conocido para el desarrollo de aplicaciones con interfaz gráfica (GUI). En esta práctica implementaremos una aplicación web utilizando el MVC.
¿En que consiste el MVC?
El principal objetivo de la arquitectura MVC es aislar tanto los datos de la aplicación como el estado (modelo) de la misma, del mecanismo utilizado para representar (vista) dicho estado, así como para modularizar esta vista y modelar la transición entre estados del modelo (controlador). Las aplicaciones MVC se dividen en tres grandes áreas funcionales:
Vista: la presentación de los datos
Controlador: el que atenderá las peticiones y componentes para toma de decisiones d la aplicación
Modelo: la lógica del negocio o servicio y los datos asociados con la aplicación
El propósito del MVC es aislar los cambios. Es una arquitectura preparada para los cambios, que desacopla datos y lógica de negocio de la lógica de presentación, permitiendo la actualización y desarrollo independiente de cada uno de los citados componentes.
El MVC consta de:
Una o más vistas de datos, Un modelo, el cual representa los datos y su comportamiento, Un controlador que controla la transición entre el procesamiento de los datos y su visualización.