Junior
Describa el modelo de interacción MVC.
sobes.tech AI
Respuesta de la IA
Patrón arquitectónico que divide la aplicación en tres partes interrelacionadas:
- Modelo: Representa los datos y la lógica de negocio. No tiene información sobre la Vista o el Controlador. Notifica a la Vista sobre cambios en sus datos (a través de Observer, Listener).
- Vista: Muestra los datos del modelo y responde a las acciones del usuario. No contiene lógica de negocio y no interactúa directamente con el Modelo. Envía solicitudes al controlador cuando el usuario interactúa.
- Controlador: Mediador que conecta el Modelo y la Vista. Procesa la entrada del usuario desde la Vista, actualiza el Modelo y selecciona la Vista para mostrar.
Ventajas:
- Separación de responsabilidades.
- Mejorabilidad en las pruebas (el Modelo y el Controlador se prueban de forma independiente).
- Posibilidad de reutilización (especialmente del Modelo).
Desventajas:
- Se vuelve engorroso para interfaces de usuario complejas (controladores gruesos - "controladores pesados").
- La interacción entre la Vista y el Modelo puede ser confusa (a través del Controlador).
- Relación estrecha entre la Vista y el Controlador (en Android, la Activity a menudo actúa en ambos roles).
En Android, la Activity o Fragment a menudo cumple funciones tanto de Vista como de Controlador, lo que complica la separación. En su forma pura, el MVC rara vez se aplica en Android, siendo más comunes patrones derivados como MVP o MVVM.