Junior
Descreva o modelo de interação MVC.
sobes.tech IA
Resposta da IA
Padrão arquitetónico que divide a aplicação em três partes interligadas:
- Modelo: Representa os dados e a lógica de negócio. Não possui informações sobre a Vista ou o Controlador. Notifica a Vista sobre alterações nos seus dados (através de Observer, Listener).
- Vista: Exibe os dados do modelo e reage às ações do utilizador. Não contém lógica de negócio e não interage diretamente com o Modelo. Envia pedidos ao controlador quando o utilizador interage.
- Controlador: Mediador que conecta o Modelo e a Vista. Processa a entrada do utilizador da Vista, atualiza o Modelo e escolhe a Vista para exibir.
Vantagens:
- Separação de responsabilidades.
- Melhor testabilidade (o Modelo e o Controlador são testados de forma independente).
- Possibilidade de reutilização (especialmente do Modelo).
Desvantagens:
- Torna-se complicado para interfaces de utilizador complexas (controladores pesados - "controladores volumosos").
- A interação entre a Vista e o Modelo pode ser confusa (através do Controlador).
- Relação estreita entre a Vista e o Controlador (em Android, a Activity frequentemente desempenha ambos os papéis).
No Android, a Activity ou Fragment frequentemente desempenha funções tanto de Vista como de Controlador, o que dificulta a separação. Na sua forma pura, o MVC raramente é utilizado em Android, sendo mais comuns padrões derivados como MVP ou MVVM.