Según Sun y Msdn , es un patrón de diseño.
Según Wikipedia es un patrón arquitectónico
En comparación con los patrones de diseño, los patrones arquitectónicos son de mayor escala. (Wikipedia - Patrón arquitectónico )
¿O es un patrón arquitectónico que también tiene un patrón de diseño?
Cual es verdadero ?
Respuestas:
MVC es más un patrón arquitectónico, pero no para una aplicación completa. MVC se relaciona principalmente con la capa de interacción / interfaz de usuario de una aplicación. Todavía necesitará una capa de lógica empresarial, tal vez una capa de servicio y una capa de acceso a datos. Es decir, si te gusta el enfoque de n niveles.
fuente
¿Por qué uno de ellos tiene que ser cierto?
Ambos pueden ser ciertos, según el punto de vista.
MVC puede ser un patrón arquitectónico, si constituye la base de la arquitectura de la aplicación.
También puede verse simplemente como un patrón de diseño, una noción abstracta que es aplicable a cualquier aplicación.
fuente
Los patrones de diseño dicen cómo escribir código de manera efectiva (considerando las métricas de código ).
Algunos beneficios:
Los patrones arquitectónicos dicen cómo utilizar los recursos de manera efectiva.
fuente
Sé que ha sido respondida hace un tiempo, pero nadie ha mencionado aún el libro que hizo famoso a MVC: Arquitectura de software orientada a patrones (POSA), de Buschmann, et al publicado en 1996. Aunque no es tan leído como el libro de Patrones de diseño , por Gamma, et al, POSA es uno de los libros fundamentales utilizados por la comunidad de patrones.
Ah, y POSA identifica muy claramente MVC como un patrón arquitectónico. Mi corazonada es que MS y Sun están siendo descuidados y llaman a cada patrón un "patrón de diseño".
fuente
Creo que ambos son ciertos. Si está buscando una instanciación particular de MVC en un marco como Ruby on Rails, esa instanciación es más un patrón de diseño. Si mira MVC como un concepto general , es más un patrón arquitectónico.
fuente
Los patrones de diseño dentro de la tríada de clases Modelo / Vista / Controlador (MVC) incluyen y pueden no estar limitados a:
Observador , desacoplando objetos para que los cambios en uno (el modelo) puedan afectar cualquier número de otros (las vistas) sin requerir que el objeto cambiado (el modelo) conozca los detalles de los demás (las vistas).
Compuesto , que nos permite tratar un objeto de grupo (una vista compuesta) como tratamos uno de sus objetos individuales (componentes de vista).
Estrategia , donde una vista usa una instancia de una subclase de Controlador para implementar una estrategia de respuesta particular; para implementar una estrategia diferente, simplemente reemplace la instancia con un tipo diferente de controlador.
Método de fábrica , especificando la clase de controlador predeterminada para una vista.
Decorador , agregando desplazamiento a una vista.
Referencia
Eric Gamma, Richard Helm, Ralph Johnson y John Vlissides. Patrones de diseño: elementos de software orientado a objetos reutilizable . Addison-Wesley, Reading, MA, 1994.
fuente
MVC siempre se menciona e introduce como capa de presentación en los libros de arquitectura de software.
Lea estos libros:
Diseño de soluciones Microsoft.NET para empresas (Microsoft press)
Patrones de diseño ASP.NET profesionales (Wrox)
Patrones de Enterpise Solutions utilizando Microsoft.NET (Microsoft press)
Patrones de arquitectura de aplicaciones empresariales (Addison Wesley)
Una guía práctica para la arquitectura empresarial (Prentice Hall)
fuente
Si pones a diez arquitectos de software en una sala y les pides que discutan qué es el patrón Modelo-Vista-Controlador, terminarás con doce opiniones diferentes. … Algunos de los puristas por ahí inevitablemente tendrán reparos con lo que yo llamo “MVC”. Siéntase libre de dejar un comentario llamativo en el tablero de mensajes al final de esta página web. Con mucho gusto entretendré diferentes perspectivas sobre lo que significa MVC, pero tenga en cuenta que no me importa.
Josh Smith
fuente
Y según Martin Fowler son arquitecturas GUI: arquitecturas Martin Fowler-GUI
Depende del tamaño de la aplicación, ya que solo afecta a las clases relacionadas con la GUI, en una pequeña (principalmente GUI) podría considerarse un patrón arquitectónico, mientras que en una enorme sería solo un patrón de diseño que se aplica a la GUI código (podría ser el 10% del código de la aplicación).
fuente
MVC es un patrón de arquitectura. Muy claramente expresado y mostrado en http://molecularsciences.org/zend/mvc_model_view_controller
fuente