Así que hay muchos patrones de diseño diferentes en esta área.
- Model View Presenter (mvp)
- Presentador de vistas de modelo (mvvp)
- Controlador de vista de modelo
- Modelo 2
y así sucesivamente. A lo largo de los años, estos se han entrelazado, combinado, cambiado y aplicado en una amplia variedad de contextos.
Lo importante aquí es que el patrón de diseño MVC de 1977 ha cambiado bastante y ya no es el patrón de diseño utilizado por los marcos web del servidor. Como ejemplo en la implementación original de smalltalk, el Modelo observaría los cambios, lo que ya no es el caso, ya que el servidor simplemente no puede observar los elementos HTML en el navegador de los usuarios. En cambio, si la vista cambia, la vista enviará una solicitud al controlador que luego actualizará la vista. Nuevamente, no se sigue la implementación original de MVC, ya que una actualización del modelo implicaría que todas las vistas dependientes del modelo se actualizarían.
Los marcos web modernos siguen una arquitectura simple de tres niveles, también conocida como arquitectura Modelo 2.
Por supuesto, hay ejemplos de arquitecturas MVC reales en la web, pero a menudo son solo del lado del cliente, están conectadas a un servidor que sigue la arquitectura del Modelo 2, ya que las vistas son xml y json, y no se observan cambios.
Ejemplos de arquitecturas mvc puras del lado del cliente son Sencha Touch y Sproutcore.
Si tiene MVC en el navegador, mvc como en el servidor y mvc como la capa de datos, tiene una implementación de mvc jerárquica.
Nota. Solo he hablado de marcos web, otras implementaciones de MVC como Java Swift y Flex tiene otras diferencias de implementación.