Desarrollo: MVC – 3 Capas

Escribo para aclarar (y no olvidar) sobre lo que es el MVC y 3 Capas, espero que este pequeño artículo pueda ayudar  a aclarar la duda si estas dos cosas son lo mismo.

En primer lugar voy a mostrar como se llama al MVC (Modelo Vista Controlador):

  • Modelo MVC.
  • Arquitectura MVC.
  • Patrón MVC.
  • Patrón de diseño MVC.

Ahora como se denota a 3 Capas (no confundir nivel con capa, nivel señala el objeto físico donde están las capas lógicas).

  • Arquitectura a 3 capas.
  • Programación en 3 capas.
  • Modelo 3 capas.
  • Desarrollo en 3 capas.

Lo que hace difícil de comprender (a mi criterio) son los diferentes términos usados, en el fondo ambas son Arquitecturas.

Entonces serían:

  • Arquitectura MVC.
  • Arquitectura a 3 Capas.

Si bien los conceptos son similares, la diferencia sería la siguiente:

  • La Arquitectura MVC, es triangular es decir que hay una relación entre la vista y el controlador, entre el controlador y el modelo y entre la vista y el modelo.
  • La Arquitectura a 3 Capas, es lineal es decir que no hay una comunicación directa entre las diferentes capas. Por ejemplo la capa del cliente no se comunica directamente con la capa de datos, todas las comunicaciones deben pasar por una capa intermedia. A demás que esta emerge en los 90s, 10 años después que la Arquitectura MVC.

7 comentarios en “Desarrollo: MVC – 3 Capas

  1. marcelo Moya

    Tengo entendido que MVC++ ya no es triangular debido a que no hay relacion entre la vista y el modelo, ahora si mi pregunta, cual es la diferencia entre Arquitectura MVC++ y Arquitectura a 3 Capas ??

    Saludos

    Marcelo

  2. Pingback: Ruby on Rails: preparando el campo de trabajo « Iloo

    1. Si quieres programar, tendrías que seguir un patron de diseño, ahora no hay un mejor patron de diseño, la elección de que patron de diseño adoptar depende de tus requerimientos, experiencia, lenguaje de desarrollo, etc. Saludos…

  3. Juan Carlos

    Realmente NO es eso. MVC es un patrón de diseño. NO es una arquitectura. De modo que los actores del patrón (M, V y C) no corresponden con «capas» de la arquitectura. Son dos cosas radicalmente diferentes.

    Modelo: Aquí es donde está el modelo de tu aplicación. Aquí HAY lógica de negocio. Son tus clases «producto», «usuario», «pedido», o lo que sea. Y son clases que tienen la lógica de negocio en ellas. Un «pedido» por ejemplo no sólo tiene las propiedades del pedido sino también métodos que modifican o manejan ese pedido, lo validan, lo marcan como pagado, etc.
    El modelo, normalmente, está dentro de la capa de negocio.
    La capa de datos únicamente debe implicarse en el acceso a datos. No debe ocuparse de saber que para que un pedido sea válido debe tener al menos 1 producto y debe tener una dirección de entrega. Sólo debe saber guardar y recuperar los datos.

    La Vista es la representación de un aspecto del modelo. Por ejemplo una Vista puede ser la ficha del producto.
    Las Vistas están dentro de la capa de presentación, pero no son la capa.

    Los Controladores reciben las acciones del usuario y las transmiten al Modelo. Los Controladores generalmente forman parte de la capa de presentación o están a caballo entre la capa de presentación y la de negocio. Algunos autores dirían que se podría ver ahí una capa de «Lógica de presentación». En realidad lo que ocurre es lo que he dicho antes, que voy a repetir de nuevo:

    Una cosa es un patrón de diseño y otra cosa es una arquitectura. Son cosas diferentes.

    Por poner un ejemplo militar: La arquitectura equivaldría a la estrategia general que se establece a alto nivel en la guerra. Un patrón de diseño equivaldría a una maniobra táctica que se realiza en una batalla determinada.

Deja un comentario