Muchas personas hablan por ahí, y le dan mil vueltas al asunto sobre que es el modelo vista controlador, se hacen bolas, inventan conceptos y finalmente terminan no contestando la pregunta.

Por este motivo decidí hacer este post, en el cual intentare explicar de manera sencilla y al grano que es el modelo vista controlador.

El modelo vista controlador, mas conocido en los bajos mundos como MVC, no es un modelo… oh no! es mas bien un estándar de desarrollo de aplicaciones, que dicta ciertas reglas para que cada quien desarrolle sobre este estándar según mejor le parezca.

Comencemos por la grafiquita esa que al final no explica nada, pero no puede faltar en un post que hable sobre MVC:

Modelo Vista Controlador

 

Bueno, pues resulta que este estándar se basa en 3 conceptos, justo como lo muestra la gráfica, con nombre propio, pero es muy importante que antes de que hablemos de ellos definamos un cuarto concepto, que es el “principio de responsabilidad unica” el cual consiste dentro del paradigma de programación orientada a objetos que un objeto tiene una y solo una razón de ser, es decir que su estado solo cambiara si y solo si esta razón se da. Bueno dicho esto pasemos a ver los 3 conceptos.

Modelo: El modelo es todo aquello que nos sirve para manejar el almacenamiento de los datos, y la lógica del negocio, en otras palabras la base de datos

Vista: La vista es todo aquello que pues, como su nombre lo dice, es visible al usuario final. En otras palabras, la interfaz gráfica o de usuario.

Controlador: Es todo el código que comunica al modelo con la vista con el modelo. sean clases, scripts o rutinas.

Bien, pero que tiene esto que ver con el principio de responsabilidad única? pues es sencillo: sucede que el controlador sirve solo para controlar, la vista solo para ver y el modelo solo para almacenar datos, esto significa que una vista nunca podrá obtener datos del modelo directamente, ya que esto es el trabajo del controlador, y un controlador nunca podrá almacenar datos directamente si no que únicamente pedirle datos al modelo, y por su parte un modelo nunca podrá renderizar una vista, es decir pues, que todos en este juego tienen su responsabilidad y es de mala practica inferirles otras responsabilidades que no sean para las que fueron diseñadas.

Podríamos pasar horas hablando sobre esto, pero al final lo que he dicho es lo fundamental para entenderlo, ya habrá tiempo mas adelante para explorar alguno de los frameworks que lo implementan.

 

Saludos!

 

 

Categorized in: