**MVC** es probablemente el patrón de arquitectura más conocido en el desarrollo de interfaces de usuario. Su objetivo es separar la aplicación en tres partes principales:
Modelo
Contiene los datos y la lógica de negocio. No sabe nada de la interfaz.
Vista
Se encarga de mostrar la información al usuario (la interfaz).
Controlador
El mediador. Recibe las acciones del usuario, actualiza el modelo y refresca la vista.
# ¿Por qué MVC?
La gran ventaja es la **separación de intereses**. Puedes cambiar totalmente el diseño (la Vista) sin tocar una sola línea de lógica de negocio (el Modelo). También facilita enormemente las pruebas unitarias.