Pular para o conteúdo principal

Questão de Arquitetura de Software — Arquitetura de Software — IADES 2024

Arquitetura de SoftwareArquitetura 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?
  1. AÉ a camada de negócio que faz a conexão entre a camada de acesso aos dados e os elementos de interface visual.
  2. BÉ a camada que define a interface visual e as interações com o usuário.
  3. 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.
  4. 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.
  5. 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:

1Model
Dados
Lógica de negócio
Repositórios/APIs
2View
Interface visual
Interações do usuário
3ViewModel
Ponte entre Model e View
Expõe dados e comandos
Sem referência direta à View
Comunicação via data binding
MVVM
LEVELsoulevel.com.br
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.

Gabarito: letra A

Link permanente: /questoes/qg205175