Posts Tagged ‘ cocoa ’

Modelo Vista Controlador

El Modelo Vista Controlador es un patrón para el desarrollo del software que se basa en separar los datos (por un lado), la interfaz del usuario (por otro) y la lógica interna (por un último lado). Es mayormente usado en aplicaciones web, dónde la vista es la página HTML, el modelo es el Sistema de Gestión de Base de Datos y la lógica interna, y el controlador es el responsable de recibir los eventos y darles solución.

A continuación vamos a desgranar más cada elemento:

  • Modelo: Es la representación de la información en el sistema. Trabaja junto a la vista para mostrar la información al usuario y es accedido por el controlador para añadir, eliminar, consultar o actualizar datos.
  • Vista: Es la presenta al modelo en un formato adecuado para que el usuario pueda interactuar con él, casi siempre es la interfaz de usuario.
  • Controlador: Es el elemento más abstracto. Recibe, trata y responde los eventos enviados por el usuario o por la propia aplicación. Interactua tanto con el modelo como con la vista.

    Modelo Vista Controlador

Para entender mejor el uso del modelo MVC vamos a ver su flujo de control:

  1. El usuario activa un evento en la interfaz (botón, enlace, etc.)
  2. El controlador recibe el evento y lo gestiona.
  3. El controlador consulta o modifica el modelo.
  4. El controlador manda la respuesta a la interfaz y esta reacciona en función de esta (cambia de pantalla, abre un enlace, etc.)
  5. La interfaz espera una nueva acción del usuario.

Una vez queda claro el funcionamiento del modelo, vamos a ver quién y cómo lo utiliza.

Existen multitud de frameworks que usan este modelo, entre los más destacados están:

  • Cocoa, escrito en Objetive C (usado en Mac OS X)
  • Ruby On Rails, escrito en Ruby.
  • Struts o Spring, escritos en Java.
  • Catalyst, escrito en Perl.
  • Symfony o Zend, escritos en PHP.
  • Django o Pylons, escritos en Python.

Yo, personalmente, sólo he trabajado con PHP, más concretamente CodeIgniter, (es lo que me han “enseñado” en la facultad) y ahora mismo que estoy aprendiendo a usar Django. Personalmente, me parece mucho más fácil de usar Django que , ya que no fui capaz de usar fluidamente PHP en todo un curso y con Python/Django llevo apenas tres meses de forma autodidacta y más o menos hago mis pinitos.