¿Que es MVC (o Modelo Vista Controlador)?

Contents

El patrón de diseño Modelo-Vista-Controlador (MVC) asigna a los objetos de una aplicación uno de los tres roles: modelo, vista o controlador. El patrón no sólo define los papeles que los objetos desempeñan en la aplicación, sino que define la forma en que los objetos se comunican entre sí. Cada uno de los tres tipos de objetos está separado de los otros por límites abstractos y se comunica con los objetos de los otros tipos a través de esos límites. La colección de objetos de un cierto tipo de MVC en una aplicación se denomina a veces capa, por ejemplo, capa modelo.

La MVC es fundamental para un buen diseño de una aplicación de Cacao. Los beneficios de adoptar este patrón son numerosos. Muchos objetos de estas aplicaciones tienden a ser más reutilizables y sus interfaces tienden a estar mejor definidas. Las aplicaciones que tienen un diseño MVC también son más fácilmente extensibles que otras aplicaciones. Además, muchas tecnologías y arquitecturas de Cocoa se basan en MVC y requieren que sus objetos personalizados desempeñen uno de los papeles de MVC.

Patrón de diseño Modelo-Vista-Controlador para PHP, Java y C#

MVC - Modelo Vista Controlador
Los objetos modelo encapsulan los datos específicos de una aplicación y definen la lógica y la computación que manipulan y procesan esos datos. Por ejemplo, un objeto modelo puede representar un personaje de un juego o un contacto de una agenda de direcciones. Un objeto modelo puede tener relaciones de uno y de muchos con otros objetos modelo, por lo que a veces la capa modelo de una aplicación es efectivamente uno o más gráficos de objetos. Muchos de los datos que forman parte del estado persistente de la aplicación (ya sea que ese estado persistente se almacene en archivos o bases de datos) deberían residir en los objetos modelo después de que los datos se carguen en la aplicación. Dado que los objetos modelo representan el conocimiento y la experiencia relacionados con un dominio de problemas específicos, pueden ser reutilizados en dominios de problemas similares. Lo ideal sería que un objeto modelo no tuviera una conexión explícita con los objetos de vista que presentan sus datos y permitiera a los usuarios editar esos datos; no debería preocuparse por cuestiones de interfaz de usuario y presentación.

Comunicación: Las acciones del usuario en la capa de vista que crean o modifican datos se comunican a través de un objeto controlador y dan lugar a la creación o actualización de un objeto modelo. Cuando un objeto modelo cambia (por ejemplo, se reciben nuevos datos a través de una conexión de red), notifica a un objeto controlador, que actualiza los objetos de vista apropiados.

Objetos de vista
Un objeto de vista es un objeto en una aplicación que los usuarios pueden ver. Un objeto de la vista sabe cómo dibujarse a sí mismo y puede responder a las acciones del usuario. Uno de los principales propósitos de los objetos de la vista es mostrar los datos de los objetos modelo de la aplicación y permitir la edición de esos datos. A pesar de ello, los objetos de la vista suelen estar desacoplados de los objetos modelo en una aplicación MVC.

Dado que normalmente se reutilizan y reconfiguran, los objetos de vista proporcionan coherencia entre las aplicaciones. Tanto el marco UIKit como el AppKit proporcionan colecciones de clases de vista, y el Interface Builder ofrece docenas de objetos de vista en su Biblioteca.

Comunicación: Los objetos de vista aprenden sobre los cambios en los datos del modelo a través de los objetos controladores de la aplicación y comunican los cambios iniciados por el usuario -por ejemplo, el texto introducido en un campo de texto- a través de los objetos controladores a los objetos del modelo de una aplicación.

Objetos controladores
Un objeto controlador actúa como intermediario entre uno o más objetos de vista de una aplicación y uno o más de sus objetos modelo. Los objetos controladores son, por lo tanto, un conducto a través del cual los objetos de vista aprenden sobre los cambios en los objetos modelo y viceversa. Los objetos controladores también pueden realizar tareas de configuración y coordinación para una aplicación y gestionar los ciclos de vida de otros objetos.

Comunicación: Un objeto controlador interpreta las acciones del usuario realizadas en los objetos de la vista y comunica los datos nuevos o modificados a la capa del modelo. Cuando los objetos del modelo cambian, un objeto controlador comunica esos nuevos datos del modelo a los objetos de la vista para que éstos puedan mostrarlos.

Para aquellos a los que no ha quedado claro, os dejo unos vídeos para que podáis ver en cada lenguaje cómo funciona. Para mí el más complejo es Java y C#, pero cada uno tendrá sus preferencias ;P

MODELO VISTA CONTROLADOR EN JAVA

MODELO VISTA CONTROLADOR EN PHP

MODELO VISTA CONTROLADOR EN C#