Por lo tanto, hay muchos patrones de diseño diferentes en esta área.
- Presentador de vista de modelo (mvp)
- Modelo Vista Vista Presentador (mvvp)
- Controlador de vista de modelo
- Modelo 2
y así. 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 lado del servidor. Como ejemplo en la implementación original de smalltalk, el Modelo observaría la vista de los cambios, que ya no es el caso, ya que el lado del 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 que dependen 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, 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 jerárquica de mvc.
Nota. Solo he hablado sobre frameworks web, otras implementaciones de MVC como java swing y Flex tienen otras diferencias de implementación.