Pregunta

Últimamente escuché el término MVC (Controlador de vista de modelo) con un montón de Buzz, pero ¿qué es realmente?

¿Fue útil?

Solución

Es posible que desee ver lo que Martin Fowler tiene que decir sobre las arquitecturas MVC, MVP y UI en general en Sitio de Martin Fowlers .

Otros consejos

Me gusta este artículo de Martin Fowler. Verá que MVC en realidad está más o menos muerto, estrictamente hablando, en su dominio original de la rica programación de UI. La distinción entre Vista y Controlador no se aplica a la mayoría de los kits de herramientas de IU modernos.

El término parece haber encontrado nueva vida en los círculos de programación web recientemente. No estoy seguro de si eso es realmente MVC, o simplemente reutilizar el nombre para algunas ideas estrechamente relacionadas pero sutilmente diferentes.

MVC es un patrón de diseño originalmente pionero en los viejos tiempos de smalltalk.

El concepto era que un modelo representaría el estado y la lógica de tu aplicación, y los controladores manejarían las IO entre " Vistas " ;.

Una vista era una representación del estado en el modelo. Por ejemplo, su modelo puede ser un documento de hoja de cálculo, y puede tener una vista que lo represente como una hoja de cálculo y una vista que lo represente como una tabla dinámica.

El MVC moderno ha sido contaminado con basura web falsa de MVC, así que dejaré que otros respondan eso.

Como la etiqueta en su pregunta indica que es un patrón de diseño. Pero eso probablemente no te ayuda. Básicamente, es una forma de organizar su código en agrupaciones lógicas que mantienen las distintas partes separadas y fácilmente modificables.

Simplificación: Modelo = estructura de datos / lógica de negocios Vista = capa de salida (es decir, código HTML) Controlador = capa de transferencia de mensajes

Entonces, cuando las personas hablan sobre MVC, lo que están hablando es dividir el código en estos grupos lógicos para mantenerlo limpio y estructurado, y, con suerte, acoplado libremente. Al seguir este patrón de diseño, debería poder crear aplicaciones que pudieran tener la Vista cambiada por completo en otra cosa sin tener que tocar su controlador o modelo (es decir, cambiar de HTML a RSS).

Hay toneladas y toneladas de tutoriales por ahí, solo buscalo en Google y estoy seguro de que encontrarás al menos uno que lo explique en términos que hagan clic contigo.

Aquí hay una descripción ingenua de MVC: http: // www.devcodenote.com/2015/04/mvc-model-view-controller.html

Un fragmento de código:

Definición: es un patrón de diseño que separa una aplicación en múltiples capas de funcionalidad.

Las capas:

Modelo Representa los datos. Actúa como una interfaz entre la base de datos y la aplicación (como un objeto de datos). Manejará validaciones, asociaciones, transacciones, etc.

controlador Recopila y procesa datos. Maneja el código que hace la selección de datos y la mensajería de datos.

Ver Muestra la salida a los usuarios.

Wikipedia parece describirlo mejor hasta ahora:

http://en.wikipedia.org/wiki/Model-view-controller

Model-view-controller (MVC) es un patrón arquitectónico utilizado en la ingeniería de software. El uso exitoso del patrón aísla la lógica empresarial de las consideraciones de la interfaz de usuario, lo que resulta en una aplicación donde es más fácil modificar el aspecto visual de la aplicación o las reglas comerciales subyacentes sin afectar a la otra. En MVC, el modelo representa la información (los datos) de la aplicación y las reglas de negocios utilizadas para manipular los datos; la vista corresponde a elementos de la interfaz de usuario, como texto, elementos de casilla de verificación, etc. y el controlador administra los detalles que involucran la comunicación con el modelo de acciones del usuario, como las pulsaciones de teclas y los movimientos del mouse

El paradigma de interfaz de usuario de MVC o Model-View-Controller fue descrito por primera vez por Trygve Reenskaug de Xerox PARC. Apareció por primera vez en forma impresa en la revista Byte, volumen 6, número 8, en agosto de 1981.

Esto ¿Qué es el artículo de blog de MVC en Oreilly lo tiene cubierto?

MVC es un patrón de arquitectura de software que separa la representación de la interacción del usuario. En general, el modelo consta de datos de aplicación y funciones que interactúan con él, mientras que la vista presenta estos datos al usuario; el controlador media entre los dos.

Patrón de diseño MVC:

4 partes = Usuario, Vista, Controlador, Modelo.

Usuario:  - ve la Vista y usa el Controlador.

Modelo:  - guarda los datos y actualiza el Modelo de que hay nuevos datos / estado.

Ver:  - Muestra los datos que tiene el modelo.

Controlador:  - toma la solicitud del usuario para obtener o configurar información, luego se comunica con la Vista o el Modelo, resp.  - se " obtiene " a través de la vista.  - se " establece " a través del Modelo.

Es una forma de separar la funcionalidad subyacente de su aplicación (modelo) de la forma en que interactúa con el usuario (ver). El controlador coordina cómo el modelo y la vista se comunican entre sí.

Si bien está de moda en este momento, es importante recordar que evitar que el propio modelo pueda determinar exactamente cómo se presentan sus datos al usuario puede ser visto como algo negativo. El ejemplo más obvio es con HTML. La intención original de HTML era que debería haber una clara separación del modelo (HTML) de la vista (página web renderizada) a través de un controlador (el navegador). Ha habido una reacción tan violenta contra esta intención original que los navegadores son criticados si no hacen que un píxel de página sea perfecto para la vista deseada por el diseñador.

MVC es una forma de particionar un elemento de la interfaz de usuario en 3 conceptos distintos. El modelo son los datos sobre los que opera la interfaz. La vista es cómo el elemento se representa visualmente (o tal vez de forma audible). El controlador es la lógica que opera sobre los datos.

Por ejemplo, si tiene algún texto que desea manipular en una interfaz de usuario. Una cadena simple podría representar los datos. La vista podría ser un campo de texto. El controlador es la lógica que traduce la entrada del usuario, por ejemplo, la entrada del personaje o del mouse, y realiza cambios en el modelo de datos subyacente.

Como muchos ya han dicho, MVC es un patrón de diseño. Ahora estoy enseñando a uno de mis compañeros de trabajo y lo he explicado de esta manera:

M odels: la capa de acceso a datos. Esto puede ser acceso directo a datos, servicios web, etc.

V iews: la capa de presentación de su aplicación.

C ontrollers: esta es la lógica de negocios para su aplicación.

Este patrón mejora el desarrollo guiado por pruebas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top