Sobes.tech
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.