Pregunta

encontré ¿Qué son mvp y mvc y cuál es la diferencia? pero realmente no respondió a esta pregunta.

Recientemente comencé a usar MVC porque es parte del marco que mi compañero de trabajo y yo vamos a usar.Lo elegimos porque parecía fácil y separaba el proceso de la visualización. ¿Hay ventajas además de esto que no conocemos y que podríamos estar perdiendo?

Ventajas

  1. La visualización y el procesamiento están separados


Contras

  1. Ninguno hasta ahora
¿Fue útil?

Solución

MVC es la separación de metromodelo, vver y CControlador: nada más y nada menos.Es simplemente un paradigma;un ideal que debes tener en cuenta al diseñar clases.Evite mezclar código de las tres categorías en una sola clase.

Por ejemplo, mientras que una cuadrícula de tabla vista Obviamente debería presentar los datos una vez mostrados, no debería tener código sobre dónde recuperar los datos o cuál es su estructura nativa (el modelo) es como.Del mismo modo, si bien puede tener una función para resumir una columna, se supone que la suma real ocurre en la columna. controlador.

Un cuadro de diálogo para 'guardar archivo' (vista) finalmente pasa el camino, una vez elegido por el usuario, hacia el controlador, que luego pregunta al modelo para los datos y realiza el guardado real.

Esta separación de responsabilidades permite flexibilidad en el futuro.Por ejemplo, debido a que a la vista no le importa el modelo subyacente, es más fácil admitir múltiples formatos de archivo:simplemente agregue una subclase de modelo para cada uno.

Otros consejos

La separación de preocupaciones es lo más importante.

Ser capaz de separar estos componentes hace que el código sea más fácil de reutilizar y probar de forma independiente.Si realmente no sabe qué es MVC, tenga cuidado al tratar de comprender las opiniones de las personas, ya que todavía hay cierta controversia sobre qué es el "Modelo" (si son los objetos comerciales/Conjuntos de datos/Tablas de datos o si representa el servicio subyacente). capa).

He visto todo tipo de implementaciones que se llaman a sí mismas MVC pero que no lo son exactamente y como se indica en los comentarios en el artículo de jeff mostrar MVC es un punto polémico en el que no creo que los desarrolladores lleguen a estar completamente de acuerdo.

Está disponible un buen resumen de todos los diferentes tipos de MVC aquí.

jeff tiene un correo al respecto; de lo contrario, encontré algunos documentos útiles en el sitio web de Apple, en los tutoriales de Cocoa (Éste Por ejemplo).

Creo que otro beneficio de usar el patrón MVC es que abre las puertas a otros enfoques al diseño, como MVP/Presenter primero y muchos otros patrones MV*.

Sin esta segregación fundamental de los "componentes" del diseño, la adopción de estas técnicas sería mucho más difícil.

Creo que ayuda a que su código esté aún más basado en la interfaz.No sólo dentro del proyecto individual, sino que casi puede comenzar a desarrollar "vistas" comunes, lo que significa que puede crear plantillas para mucho más código "gruñido" utilizado en sus aplicaciones.Por ejemplo, una "vista de datos" muy abstracta que simplemente toma un montón de datos y los coloca en un diseño de cuadrícula común.

Editar:

Si recuerdo correctamente, Este es un podcast bastante bueno sobre patrones MV*. (¡lo escuché hace un tiempo!)

Una desventaja que se me ocurre es si necesita un acceso realmente rápido a los datos en su vista (por ejemplo, datos de animación del juego, como las posiciones de los huesos). En este caso, es muy ineficiente mantener una capa de separación.

De lo contrario, para la mayoría de las otras aplicaciones que se basan más en datos que en gráficos, parece una forma lógica de controlar una interfaz de usuario.

Si sigues los podcasts de stackoverflow, podrás escuchar a Jeff (¿y Geoff?) hablar sobre su grandeza. http://blog.stackoverflow.com/2008/08/podcast-17/.Pero recuerde que usar estas capas separadas significa que las cosas serán más fáciles en el futuro... y más difíciles ahora.y capas poder hacer las cosas más lentas.Y es posible que no los necesite.Pero no permita que eso le impida aprender qué es: cuando se construyen sistemas grandes, robustos y de larga duración, es invaluable.

Separa el modelo y la vista controlados por un controlador, en lo que respecta al modelo, sus modelos deben seguir la arquitectura OO, las mejoras futuras y otro mantenimiento de la base de código deberían ser muy fácil y la base del código debe ser reutilizable.

El mismo modelo puede tener cualquier número de vistas, por ejemplo, la misma información se puede mostrar en diferentes vistas gráficas.La misma vista puede tener diferentes números de modelos, por ejemplo, diferentes detalles se pueden mostrar como un solo gráfico, por ejemplo, como un gráfico de barras.Esto es lo que es la reutilización tanto de la Vista como del Modelo.

Se pueden implementar fácilmente mejoras en las vistas y otros soportes de nuevas tecnologías para crear la vista.

El tipo que está trabajando en la vista no necesita conocer la base del código del modelo subyacente y su arquitectura, y viceversa para el modelo.

MVC es solo un patrón de diseño general que, en el contexto del desarrollo eficiente de aplicaciones web, facilita al desarrollador mantener el marcado HTML en la capa de presentación de una aplicación (la vista) separado de los métodos que reciben y manejan las solicitudes de los clientes (la controladores) y las representaciones de datos que se devuelven dentro de la vista (los modelos).Se trata de separar preocupaciones, es decir, mantener el código que sirva a un propósito funcional (p. ej.manejo de solicitudes de clientes) secuestrados de código que tiene un propósito funcional completamente diferente (p. ej.representar datos).

Es el mismo principio por el que cualquiera que haya pasado más de 5 minutos intentando crear un sitio web puede apreciar la necesidad de mantener el marcado HTML, JavaScript y CSS en archivos separados:Si simplemente volcas todo tu código en un solo archivo, terminarás con espaguetis que prácticamente no se podrán editar más adelante.

Ya que preguntaste por posibles "desventajas": No soy una autoridad en el diseño de arquitectura de software, pero según mi experiencia desarrollando en MVC, creo que también es importante señalar que seguir un patrón de diseño MVC estricto y sencillo es más útil para 1) aplicaciones web livianas, o 2 ) como la capa de interfaz de usuario de una aplicación empresarial más grande.Me sorprende que no se hable más de esta especificación, porque MVC no contiene definiciones explícitas para su lógica de negocios, modelos de dominio o cualquier cosa en la capa de acceso a datos de su aplicación.Cuando comencé a desarrollar en ASP.NET MVC (es decir,antes de saber que existían otras arquitecturas de software), terminaría con controladores muy inflados o incluso vería modelos repletos de lógica de negocios que, si hubiera estado trabajando en aplicaciones empresariales, habría dificultado a otros desarrolladores que no estaban familiarizados con mi código a modificar (es decirmás espaguetis).

Una de las principales ventajas de MVC que no se menciona aquí es que MVC proporciona URL RESTful que permite SEO.Cuando asigna un nombre inteligente a sus controladores y acciones, a los motores de búsqueda les resulta más fácil encontrar su sitio si solo echan un vistazo a las URL de su sitio.Por ejemplo, tiene un sitio web de venta de automóviles y una página que muestra los automóviles Lamborghini Veneno disponibles, en lugar de tener www.MyCarSale.com/product/6548 refiriéndose a la página que puedes elegir www.MyCarSale.com/SportCar/Lamborghini-Veneno URL para fines de SEO.

Aquí es una buena respuesta a MVC Advantages y aquí es un artículo Cómo crear una URL compatible con SEO.

La principal ventaja de la arquitectura MVC es diferenciar las capas de un proyecto en Modelo, Vista y Controlador para la reutilización del código, código y mantenimiento fáciles de mantener.Lo mejor es que el desarrollador se siente bien al agregar algo de código entre el mantenimiento del proyecto.

Aquí puedes ver algunos puntos más sobre Principales ventajas de la arquitectura MVC.

![arquitectura mvc][1]

Modelo-vista-controlador (MVC) es un patrón arquitectónico de software para implementar interfaces de usuario.Divide una aplicación de software determinada en tres partes interconectadas, para separar las representaciones internas de la información de las formas en que la información se presenta o se acepta por parte del usuario.

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