Questão de Arquitetura de Software — Arquitetura de Software — IADES 2024
Arquitetura de Software›Arquitetura de Software
Código
qg205175
Banca
IADES
Órgão
BRB
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Em que consiste a camada ViewModel na arquitetura MVVM para aplicações móveis?
AÉ a camada de negócio que faz a conexão entre a camada de acesso aos dados e os elementos de interface visual.
BÉ a camada que define a interface visual e as interações com o usuário.
CÉ o módulo que representa o repositório de dados obtidos de um banco de dados ou a partir de consultas a APIs remotas.
DÉ o serviço que obtém os dados e, por meio de referência direta a componentes de interface visual, define como os dados serão apresentados.
EÉ a camada que representa o roteamento entre componentes, ou seja, onde as rotas da aplicação e a navegação entre as telas são configuradas.
Revelar gabarito e comentário▾
GabaritoA — É a camada de negócio que faz a conexão entre a camada de acesso aos dados e os elementos de interface visual.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
MVVM (Model-View-ViewModel) para aplicações móveis
Gabarito: letra A. A camada ViewModel no MVVM é a intermediária entre o Model (dados/lógica de negócio) e a View (interface). Ela expõe dados e comandos para a View por meio de bindings, sem manter referência direta a componentes visuais, atuando como ponte entre a camada de acesso aos dados e os elementos de interface — exatamente o que descreve a alternativa A.
A banca cobra o papel específico de cada camada no padrão MVVM. Diferentemente do MVC, onde o Controller manipula a View diretamente, no MVVM a ViewModel é desacoplada da View e se comunica via mecanismos de data binding. Vamos analisar cada alternativa:
MVVM: Model (Dados, Lógica de negócio, Repositórios/APIs); View (Interface visual, Interações do usuário); ViewModel (Ponte entre Model e View, Expõe dados e comandos, Sem referência direta à View, Comunicação via data binding)
Alternativa A — ✅ Correta ⟵ GABARITO
Descreve a ViewModel como "a camada de negócio que faz a conexão entre a camada de acesso aos dados e os elementos de interface visual". Embora o termo "camada de negócio" seja mais típico do Model em algumas nomenclaturas, na prática a ViewModel pode conter lógica de apresentação (e até regras de negócio simples) e, acima de tudo, atua como a ponte que transforma dados do Model em algo que a View possa exibir, sem referenciar diretamente os componentes visuais. O conceito central de conexão entre dados e interface está presente e corresponde exatamente ao papel da ViewModel.
Alternativa B — ❌ Incorreta
"É a camada que define a interface visual e as interações com o usuário." Essa é a definição da View (Visão), não da ViewModel. A View é responsável pela apresentação e interação; a ViewModel não define elementos visuais.
Alternativa C — ❌ Incorreta
"É o módulo que representa o repositório de dados obtidos de um banco de dados ou a partir de consultas a APIs remotas." Isso descreve o Model (incluindo repositórios e fontes de dados). A ViewModel consome esses dados, mas não os representa como repositório.
Alternativa D — ❌ Incorreta
"É o serviço que obtém os dados e, por meio de referência direta a componentes de interface visual, define como os dados serão apresentados." Uma referência direta a componentes visuais viola o princípio central do MVVM: a ViewModel não deve conhecer a View. Essa característica é típica de um Controller no MVC ou de abordagens acopladas. No MVVM, a comunicação é feita por data binding ou comandos, sem referência explícita à interface.
Alternativa E — ❌ Incorreta
"É a camada que representa o roteamento entre componentes, ou seja, onde as rotas da aplicação e a navegação entre as telas são configuradas." Roteamento e navegação são responsabilidades de outra camada (ex.: navigation service ou coordenadores), não da ViewModel. Embora a ViewModel possa disparar navegações, ela não configura rotas nem representa a camada de roteamento.
PEGA ESSA DICA!
Para identificar a ViewModel, lembre-se de que ela é a "ponte invisível": expõe propriedades observáveis e comandos para a View, mas jamais segura uma referência a um botão, label ou qualquer componente visual. A separação de responsabilidades no MVVM é mais rígida que no MVC.