Questão de Arquitetura de Software — Arquitetura em camadas — VUNESP 2024
Arquitetura de Software›Arquitetura em camadas
Código
vu081400
Banca
VUNESP
Órgão
Câmara de Campinas - SP
Ano
2024
Nível
Superior
Cargo
Analista Legislativo - TI
Uma arquitetura recomendada para aplicativos Android baseia-se em 3 camadas: interface de usuário (UI), domínios e dados. Nesse contexto, a camada de domínios
Aconsiste no back-end em nuvem de um aplicativo on-line.
Bé responsável por encapsular a lógica de negócios que é reutilizada por vários ViewModels.
Ctem esse nome porque é responsável por resolver consultas de domínio DNS para que o front-end acesse o back-end.
Dé composta por repositórios que podem conter de zero a várias fontes de dados.
Econsiste em um mecanismo de persistência de dados que dá apoio à camada de dados.
Revelar gabarito e comentário▾
GabaritoB — é responsável por encapsular a lógica de negócios que é reutilizada por vários ViewModels.
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”.
Arquitetura em camadas no Android: camada de domínios
Gabarito: letra B. Na arquitetura recomendada para aplicativos Android (UI, domínio, dados), a camada de domínios é responsável por encapsular a lógica de negócios reutilizável por vários ViewModels. Ela contém os casos de uso (use cases) que orquestram o fluxo de dados entre UI e Data, mantendo a independência de frameworks e promovendo a testabilidade.
A banca testa o conhecimento da função de cada camada, especialmente o papel central da camada de domínio como portadora das regras de negócio que podem ser compartilhadas entre diferentes ViewModels.
Camada
Função Principal
Componentes Típicos
Relação com outras camadas
UI (Interface de Usuário)
Exibir dados e capturar interações do usuário
Activities, Fragments, ViewModels, Composables
Consome dados da camada de domínio via ViewModels
Domínios
Encapsular lógica de negócios reutilizável
Casos de uso (Use Cases), entidades de domínio
Orquestra fluxo entre UI e dados; independe de frameworks
Dados
Gerenciar fontes de dados e persistência
Repositórios, DAOs, fontes remotas/locais
Fornece dados para a camada de domínio via interfaces
Camada de domínios (Android): Responsabilidade (Encapsula lógica de negócios, Reutilizada por vários ViewModels, Contém casos de uso (use cases)); Relação com outras camadas (UI → Domínio → Dados, Interage com repositórios por interfaces, Não contém repositórios); O que NÃO é (Back-end em nuvem, Resolução de DNS, Mecanismo de persistência)
Alternativa A — ❌ Incorreta
Afirma que a camada de domínios consiste no back-end em nuvem. Isso é incorreto: o back-end está fora do aplicativo e não faz parte da arquitetura interna de camadas. A camada de domínios reside no lado cliente e contém a lógica de negócios, não serviços remotos.
Alternativa B — ✅ Correta ⟵ GABARITO
Descreve exatamente o papel da camada de domínios: encapsular a lógica de negócios que é reutilizada por vários ViewModels. ViewModels usam os casos de uso (presentes na camada de domínio) para transformar dados da camada de dados em informações prontas para a UI. É o centro das regras do aplicativo.
Alternativa C — ❌ Incorreta
Confunde "domínio" com "DNS" (Domain Name System). A camada de domínios não tem relação com resolução de DNS; esse é um serviço de rede. O termo “domínio” aqui refere-se ao domínio do problema (business domain), não ao sistema de nomes.
Alternativa D — ❌ Incorreta
Atribui à camada de domínios a composição por repositórios. Na verdade, os repositórios fazem parte da camada de dados. A camada de domínios interage com os repositórios através de interfaces (dependências invertidas), mas não os contém.
Alternativa E — ❌ Incorreta
Diz que a camada de domínios é um mecanismo de persistência que apoia a camada de dados. O contrário é verdadeiro: a camada de dados lida com persistência e fornece dados; a camada de domínios orquestra esses dados. Persistência é responsabilidade da camada de dados.