El patrón de diseño Modelo-Vista-Controlador (MVC) separa la representación de datos y la lógica de negocio (modelo) de las interfaces de usuario (vistas) y la lógica de control de eventos (controladores). El objetivo es independizar las interfaces de usuario de los datos subyacentes. El modelo representa los datos y la lógica de negocio, las vistas representan interfaces de usuario y los controladores coordinan las interacciones entre el modelo y las vistas.