vista ventajas mvc modelo ejemplo desventajas controlador model-view-controller design-patterns architectural-patterns

model view controller - ventajas - Es MVC un patrón de diseño o patrón arquitectónico



mvc pdf (10)

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 ?


¿Por qué uno de ellos tiene que ser verdad?

Ambos pueden ser verdaderos, dependiendo del punto de vista.

MVC puede ser un patrón arquitectónico, si forma la base de la arquitectura de la aplicación.

También se puede ver como simplemente un patrón de diseño, una noción abstracta que se aplica a cualquier aplicación.


Creo que ambos son verdaderos Si está viendo una instancia particular de MVC en un marco como Ruby on Rails, esa instanciación es más un patrón de diseño. Si miras a MVC como un concepto general , es más un patrón arquitectónico.


Los patrones de diseño dentro de la tríada de clases Modelo / Vista / Controlador (MVC) incluyen y pueden no estar limitados a:

  • Observer , desacoplando objetos para que los cambios en uno (el modelo) puedan afectar cualquier cantidad de otros (las vistas) sin requerir que el objeto cambiado (el modelo) conozca los detalles de los otros (las vistas).

  • Compuesto , que nos permite tratar un objeto de grupo (una vista compuesta) del mismo modo que tratamos uno de sus objetos individuales (ver componentes).

  • Estrategia , donde una vista usa una instancia de una subclase Controller 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 , que especifica la clase de controlador predeterminada para una vista.

  • Decorador , agregando desplazamiento a una vista.

Referencia

  • Páginas 4 a 6 (Sección 1.2 Patrones de diseño en Smalltalk MVC)
  • Páginas 293 a 304 (patrón de diseño del observador)
  • Páginas 163 a 174 (patrón de diseño compuesto)
  • Páginas 315 a 324 (patrón de diseño de estrategia)
  • Páginas 107 a 116 (patrón de diseño de método de fábrica)
  • Páginas 175 a 185 (patrón de diseño del decorador)

Eric Gamma, Richard Helm, Ralph Johnson y John Vlissides. Patrones de diseño: elementos del software reutilizable orientado a objetos . Addison-Wesley, Reading, MA, 1994.


MVC es más un patrón arquitectónico, pero no para una aplicación completa. MVC principalmente se relaciona con la interfaz de usuario / capa de interacción de una aplicación. Aún necesitará capa de lógica empresarial, tal vez alguna capa de servicio y capa de acceso a datos. Es decir, si te gusta el enfoque n-tier.




Sé que ha sido respondido hace un tiempo, pero nadie ha mencionado aún el libro que hizo MVC famoso: Arquitectura de Software Orientada a Patrones (POSA), de Buschmann, et al publicado en 1996. Aunque no tan leído como el libro de Patrones de Diseño , por Gamma, et al, POSA es uno de los libros fundacionales utilizados por la comunidad de patrones.

Ah, y POSA identifica muy claramente a 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".


Si pones 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 que existen inevitablemente tendrán reparos con lo que yo llamo "MVC". Siéntase libre de dejar un comentario en llamas en el tablero de mensajes en la parte inferior de esta página web. Con mucho gusto tendré diferentes perspectivas sobre lo que MVC significa, pero tenga en cuenta que no me importa.

Josh Smith


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 grande sería simplemente un patrón de diseño que aplicaría a la GUI. código (podría ser el 10% del código de la aplicación).


Los patrones de diseño dicen cómo escribir código de manera efectiva (considerando Métricas de Código ).

Algunos beneficios:

  1. Fácilmente Maintainable
  2. Alta reutilización
  3. Legible debido a abstracciones

Los patrones arquitectónicos dicen cómo utilizar los recursos de manera efectiva.

  1. La ejecución de tareas paralelas, como programadores y diseñadores gráficos, puede funcionar en paralelo.
  2. Se pueden utilizar múltiples tecnologías para construir un software.

En MVC, a). Las vistas se pueden crear usando plantillas de JavaScript y también se puede usar html b). Los controladores se pueden escribir .NET framework yc). Los modelos se pueden escribir en Java: se puede usar un servicio de Java que devuelva solo datos json.

Mientras se encuentra en el patrón de diseño, no se puede implementar un patrón en el que se pueda escribir código en múltiples tecnologías como clase AdminUser en Java, clase de cliente en C #, clase Partners en Php y un patrón de fábrica en Ruby :); hmmm..so fácil? :)